预备知识数制与码制.ppt
《预备知识数制与码制.ppt》由会员分享,可在线阅读,更多相关《预备知识数制与码制.ppt(78页珍藏版)》请在三一办公上搜索。
1、第1章 预备知识(数制与码制),1.1 进位计数制及各计数制间的转换1.2 二进制数的运算 1.3 带符号数的表示方法 原码、反码、补码1.4 定点数与浮点数1.5 BCD码和ASCII码,1.1 进位计数制及各计数制间的转换,数制是人们对事物数量计数的一种统计规律。在日常生活中最常用的是十进制,但在计算机中,由于其电气元件最易实现的是两种稳定状态:器件的“开”与“关”;电平的“高”与“低”。因此,采用二进制数的“0”和“1”可以很方便地表示机内的数据运算与存储。在编程时,为了方便阅读和书写,人们还经常用八进制数或十六进制来表示二进制数。虽然一个数可以用不同计数制形式表示它的大小,但该数的量值
2、则是相等的。,1.1.1进位计数制 当进位计数制采用位置表示法时,同一数字在不同的数位所代表的数值是不同的。每一种进位计数应包含两个基本的因素:(1)基数R(Radix):它代表计数制中所用到的数码个数。如:二进制计数中用到0和1两个数码;而八进制计数中用到07共八个数码。一般地说,基数为R的计数制(简称R进制)中,包含0、1、R-1个数码,进位规律为“逢R进1”。,(2)位权W(Weight):进位计数制中,某个数位的值是由这一位的数码值乘以处在这一位的固定常数决定的,通常把这一固定常数称之为位权值,简称位权。各位的位权是以R为底的幂。如十进制数基数R=10,则个位、十位、百位上的位权分别为
3、100,101,102。一个R进制数N,可以用以下两种形式表示:(1)并列表示法,或称位置计数法:(N)R(K n-1 K n-2K1K0K-1 K-2K-m)R,(2)多项式表示法,或称以权展开式:(N)RK n-1 R n-1K n-2 R n-2K1R1K0R0 K-1 R-1K-m R-m=其中:m、n为正整数,n代表整数部分的位数;m代表小数部分的位数;Ki代表R进制中的任一个数码,0KiR-1。1.二进制数 二进制数,R2,Ki取0或1,进位规律为“逢2进1”。任一个二进制数N可表示为:,(N)2K n-1 2 n-1K n-2 2 n-2K121K020-1-1K-m 2-m(1
4、 1)例如:(1001.101)2=12302202112012-102-2 2.八进制数 八进制,R8,Ki可取07共8个数码中的任意1个,进位规律为“逢8进1”。任意一个八进制数N可以表示为:(N)8K n-1 8 n-1K n-2 8 n-2K181K080 K-1 8-1K-m 8-m(12)例如:(246.12)828248168018-128-2,3.十六进制数 十六进制数,16,i可取015共16个数码中的任一个,但1015分别用A、B、C、D、E、F表示,进位规律为“逢16进1”。任意一个十六进制数可表示为:(N)16K n-1 16 n-1K n-2 16 n-2K1161K
5、0160K-1 16-1K-m 16 m(13)例如:(2D07.A)16216313162016171601016-1,表11给出了以上3种进制数与十进制数的对应关系。为避免混淆,除用(N)R的方法区分不同进制数外,还常用数字后加字母作为标注。其中字母B(Binary)表示二进制数;字母Q(Octal的缩写为字母O,为区别数字0故写成Q)表示八进制数;字母D(Decimal)或不加字母表示十进制数;字母H(Hexadecimal)表示十六进制数。,表11二、八、十、十六进制数码对应表,1.1.2 各种进制数间的相互转换 1.各种进制数转换成十进制数 各种进制数转换成十进制数的方法是:将各进制
6、数先按权展成多项式,再利用十进制运算法则求和,即可得到该数对应的十进制数。例1:将数1001.101B,246.12Q,2D07.AH转换为十进制数。1001.101B12302202112012102-212-3 810.50.1259.625,246.12Q28248168018-128-2 1283260.1250.03125166.15625 2D07.AH216313162016171601016-1 8192332870.62511527.625,2.十进制数转换为二、八、十六进制数 任一十进制数N转换成q进制数,先将整数部分与小数部分分为两部分,并分别进行转换,然后再用小数点将这
7、两部分连接起来。1)整数部分转换 整数部分转换步骤为:第1步:用去除N的整数部分,得到商和余数,记余数为进制整数的最低位数码K0;,第2步:再用q去除得到的商,求出新的商和余数,余数又作为q进制整数的次低位数码K1;第3步:再用q去除得到的新商,再求出相应的商和余数,余数作为q进制整数的下一位数码Ki;第4步:重复第3步,直至商为零,整数转换结束。此时,余数作为转换后q进制整数的最高位数码K n-1。,2|1682|84 余数0,K002|42 余数0,K102|21 余数0,K202|10 余数1,K31 2|5 余数0,K40 8|168 2|2 余数1,K51 8|21余数0,K00 1
8、6|168 2|1 余数0,K60 8|2余数5,K1516 16|10余数8,K08 0 余数1,K71 0余数2,K22 0 余数10,K1A 16810101000B 168250Q 168A8H,2)小数部分转换 小数部分转换步骤为:第1步:用q去乘N的纯小数部分,记下乘积的整数部分,作为q进制小数的第1个数码K-1;第2步:再用q去乘上次积的纯小数部分,得到新乘积的整数部分,记为q进制小数的次位数码K-i;第3步:重复第2步,直至乘积的小数部分为零,或者达到所需要的精度位数为止。此时,乘积的整数位作为q进制小数位的数码K-m。,例3:将0.686转换成二、八、十六进制数(用小数点后5
9、位表示)。0.6862=1.372K-1=1 0.6868=5.488K-1=5 0.68616=10.976K-1=A0.3722=0.744K-2=0 0.4888=3.904K-2=3 0.97616=15.616K-2=F0.7442=1.488K-3=1 0.9048=7.232K-3=7 0.61616=9.856K-3=90.4882=0.976K-4=0 0.2328=1.856K-4=1 0.85616=13.696K-4=D0.9762=1.952K-5=1 0.8568=6.848K-5=6 0.69616=11.136K-5=B 0.6860.10101B 0.6860
10、.53716Q 0.6860.AF9DBH,例4:将168.686转换为二、八、十六进制数。根据例2、例3可得:168.68610101000.10101B 168.686250.53716Q 168.686A8.AF9DBH,从以上例子可以看出,二进制表示的数愈精确,所需的数位就愈多,这样,不利于书写和记忆,而且容易出错。另外,若用同样数位表示数,则八、十六进制数所表示数的精度较高。所以在汇编语言编程中常用八进制或十六进制数作为二进制数的缩码,来书写和记忆二进制数,便于人机信息交换。在MCS-51系列单片机编程中,通常采用十六进制数。,3.二进制数与八进制数之间的相互转换 由于238,故可采
11、用“合3为1”的原则,即从小数点开始分别向左、右两边各以3位为1组进行二八换算;若不足3位的以0补足,便可将二进制数转换为八进制数。例5:将1111011.0101B转换为八进制数。解:根据“合3为1”和不足3位以0补足的原则,将此二进制数书写为:001 111 011.010 100 1 7 3 2 4 因此,其结果为1111011.0101B173.24Q。,例6:将1357.246Q转换成二进制数。解:根据“1分为3”的原则,可将该十进制数书写为:1 3 5 7.2 6 001 011 101 111 010 100 110 其结果为1357.246Q1011101111.0101001
12、1B。4.二进制数与十六进制数之间的相互转换 由于24=16,故可采用“合4为1”的原则,从小数点开始分别向左、右两边各以4位为1组进行二十六换算;若不足4位以0补足,便可将二进制数转换为十六进制数。,例7:将1101000101011.001111B转换成十六进制数。解:根据“合4为1”的原则,可将该二进制数书写为:0001 1010 0010 1011 0011 1100 1 A 2 B 3 C 其结果为1101000101011.001111B=1A2B.3CH。反之,采用“1分为4”的原则,每位十六进制数用4位二进制数表示,便可将十六进制数转换为二进制数。,例8:将4D5E.6FH转换
13、成二进制数。解:根据“1分为4”的原则,可将该十六进制数书写为:4 D 5 E 6 F 0100 1101 0101 1110 0110 1111 其结果为4D5E.6FH100110101011110.01101111B。,1.2 二进制数的运算,1.2.1二进制数的算术运算 二进制数不仅物理上容易实现,而且算术运算也比较简单,其加、减法遵循“逢2进1”、“借1当2”的原则。以下通过4个例子说明二进制数的加、减、乘、除运算过程。1.二进制加法 1 位二进制数的加法规则为:000 011 101 1110(有进位),例1:求11001010B11101B。解:被加数 11001010 加数 1
14、1101 进位)00110000 和 11100111 则11001010B11101B11100111B。由此可见,两个二进制数相加时,每1位有3个数参与运算(本位被加数、加数、低位进位),从而得到本位和以及向高位的进位。,2.二进制减法 1位二进制数减法规则为:101 110 000 011(有借位)例2:求10101010B10101B。解:被减数 10101010 减数 10101 借位)00101010 差 10010101 则10101010B10101B10010101B。,3.二进制乘法 1 位二进制乘法规则为:000 010 100 111 例3:求110011B1011B。
15、解:被乘数 110011 乘数)1011 110011 110011 000000)110011 积 1000110001,则110011B1011B1000110001B。由运算过程可以看出,二进制数乘法与十进制数乘法相类似,可用乘数的每1位去乘被乘数,乘得的中间结果的最低有效位与相应的乘数位对齐,若乘数位为1,则中间结果为被乘数;若乘数位为0,则中间结果为0,最后把所有中间结果同时相加即可得到乘积。显然,这种算法计算机实现时很不方便。对于没有乘法指令的微型计算机来说,常采用比较、相加、与部分积右移相结合的方法进行编程来实现乘法运算。,4.二进制除法 二进制除法的运算过程类似于十进制除法的运
16、算过程。例4:求 100100B101B。解:000111 101 100100 101 1000 101 110 101 1,则100100B101B=111B,余1B。二进制数除法是二进制数乘法的逆运算,在没有除法指令的微型计算机中,常采用比较、相减、余数左移相结合的方法进行编程来实现除法运算。由于MCS-51系列单片机指令系统中包含有加、减、乘、除指令,因此给用户编程带来了许多方便,同时也提高了机器的运算效率。,1.2.2 二进制数的逻辑运算 1.“与”运算(AND)“与”运算又称逻辑乘,运算符为或。“与”运算的规则如下:000 01100 111 例5:若二进制数X10101111B,
17、Y01011110B,求 XY。10101111 01011110 00001110 则XY00001110B。,2.“或”运算(OR)“或”运算又称逻辑加,运算符为或。“或”运算的规则如下:000 01101 111 例6:若二进制数X10101111B,Y01011110B,求X Y。10101111 01011110 11111111 则XY11111111B。,3.“非”运算(NOT)“非”运算又称逻辑非,如变量A的“非”运算记作。“非”运算的规则如下:例7:若二进制数A10101111B,求。01010000B 由此可见,逻辑“非”可使A中各位结果均发生反变化,即0变1,1变0。,4
18、.“异或”运算(XOR)“异或”运算的运算符为或,其运算规则如下:0 00 0 11 01 1 10 例8:若二进制数X10101111B,Y01011110B,求 X Y。10101111 01011110 11110001 则X Y11110001B。,1.3 带符号数的表示方法原码、反码、补码,1.3.1 机器数与真值 在1.2.1、1.2.2节中讨论的二进制数运算均为无符号数运算,但实际的数值是带有符号的,既可能是正数,也可能是负数,前者符号用“”号表示,后者符号用“”号表示,运算的结果也可能是正数,也可能是负数。于是在计算机中就存在着如何表示正、负数的问题。,由于计算机只能识别0和1
19、,因此,在计算机中通常把一个二进制数的最高位作为符号位,以表示数值的正与负(若用8位表示一个数,则D7位为符号位;若用16位表示一个数,则D15位为符号位),并用0表示“”;用1表示“”。例如:N11011,N2-1011在计算机中用8位二进制数可分别表示为:D7 D6 D5 D4 D3 D2 D1 D0,符号,数值部分,1.3.2原码、补码与反码 1.原码 正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称之为原码,用X原表示。(1)正数的原码。,D7 D6 D5 D4 D3 D2 D1 D0,符号,数值部分,若真值为正数XK n-2 K n-3K1K0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 预备 知识 数制
链接地址:https://www.31ppt.com/p-4880063.html