1、0 0 计算机中数的表示方法及运算计算机中数的表示方法及运算 引言引言: 十进制数十进制数是人们习惯使用的进制。是人们习惯使用的进制。 计算机只能计算机只能“识别识别”二进制数二进制数。 为了书写和识读方便,计算机程序需要用为了书写和识读方便,计算机程序需要用十六进制数十六进制数表示。表示。 十进制数、二进制数、十六进制数之间的十进制数、二进制数、十六进制数之间的关系关系、相互转换相互转换和和 运算方法运算方法,是学习计算机必备的基础知识。,是学习计算机必备的基础知识。第第1 1章章 计算机基础知识计算机基础知识1.1 二进制数及其在计算机中的使用1.1.1 二进制数的进位计数特性 1. 进位
2、计数制 2. 二进制数1.1.2 机器数与机器数表示形式 1. 机器数 2. 符号数和无符号数 3. 定点数与浮点数 4. 原码、反码和补码 (1)原码 (2)反码 (3)补码1.1.3 计算机中二进制数的单位 1. 位(Bit) 2. 字节(Byte) 3. 字(Word)1.1.4 计算机使用二进制数的原因 1. 易于实现 2. 运算简单 3. 具有逻辑属性 4. 可靠性高 5. 节省硬件设备1.2 二进制数的算术运算和逻辑运算1.2.1 二进制算术运算 1. 二进制加法运算 2. 二进制减法运算 3. 二进制乘法运算 4. 二进制除法运算1.2.2 二进制逻辑运算 1. 逻辑“或”运算
3、图1.1 具有逻辑“或”关系的并联开关 2. 逻辑“与”运算 图1.2 具有逻辑“与”关系的串联开关 3. 逻辑“非”运算 4. 逻辑“异或”运算1.3 供程序设计使用的其他进制数1.3.1 十进制数与十六进制数 1. 十进制数 2. 十六进制数1.3.2 不同进制数之间的转换 1. 各种进制整数转换为十进制数 2. 十进制整数转换为二进制数 3. 十进制整数转换为十六进制数 4. 二进制整数与十六进制整数之间的相互 转换 (1)二进制整数转换为十六进制数 (2)十六进制整数转换为二进制数1.4 计算机中使用的编码 1. 二一十进制编码 2. ASC码1.5 微型计算机概述图1.3 微型计算机
4、系统组成框图1.5.1 微型计算机硬件系统 图1.4 以运算器为中心的计算机框图 图1.5 以存储器为中心的计算机框图1.5.2 微型计算机软件系统 1.5.3 微型计算机的工作过程 1. 取指令阶段 2. 执行指令阶段二进制、十进制和十六进制数二进制、十进制和十六进制数 十进制数十进制数 主要特点:主要特点: 基数是基数是1010。有。有1010个数码(数符)构成:个数码(数符)构成: 0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9。 进位规则是进位规则是“逢十进一逢十进一”。【例【例】 1234.561234.56= 1= 110103 3+2+210102
5、 2+3+310101 1+4+410100 0+5+51010-1-1+6+61010-2-2= 1000+200+30+4+0.5+0.06= 1000+200+30+4+0.5+0.06 上述,上述,10103 3、10102 2、10101 1、10100 0、1010-1-1、1010-2-2 称为十进制数各数位的称为十进制数各数位的 “ “ 权权 ” ” 。 二进制数二进制数 主要特点:主要特点: 基数是基数是2 2。只有两个数码:。只有两个数码:0 0 和和 1 1。 进位规则是进位规则是“逢二进一逢二进一”。 每每左左移一位移一位,数值数值增大增大一倍;一倍;右右移一位移一位,
6、数值数值减小减小一半。一半。 二进制数用尾缀二进制数用尾缀B B作为标识符。作为标识符。【例【例】 111.11B111.11B= 1= 12 22 2 +1 +12 21 1 +1 +12 20 0 +1 +12 2-1-1+1+12 2-2-2= 7.75= 7.75 其中,其中,2 22 2、2 21 1、2 20 0、2 2-1-1、2 2-2-2 称为二进制数各数位的称为二进制数各数位的“ “ 权权 ” ” 十六进制数十六进制数 主要主要特点特点: 基数是基数是1616。共有。共有1616个数符构成:个数符构成: 0 0、1 1、9 9、A A、B B、C C、D D、E E、F F
7、。其中,。其中, A A、B B、C C、D D、E E、F F 代表的数值分别为代表的数值分别为 1010、1111、1212、1313、1414、1515。 进位规则是进位规则是“逢十六进一逢十六进一”。 十六进制数用尾缀十六进制数用尾缀H H表示。表示。【例【例】A3.4HA3.4H = 10 = 1016161 1+3+316160 0+4+41616-1-1 = 160+3+0.25 = 160+3+0.25 = 163.25 = 163.25 其中,其中,16163 3、16162 2、16161 1、16160 0、1616-1-1、1616-2-2 称为十六进制数各数位的称为十
8、六进制数各数位的“权权”。十六进制数、二进制数和十进制数对应关系表十六进制数、二进制数和十进制数对应关系表 十进制数十进制数十六进制数十六进制数二进制数二进制数十进制数十进制数十六进制数十六进制数二进制数二进制数0 000H00H0000B0000B11110BH0BH 1011B1011B1 101H01H0001B0001B12120CH0CH 1100B1100B2 202H02H0010B0010B13130DH0DH 1101B1101B3 303H03H0011B0011B14140EH0EH 1110B1110B4 404H04H0100B0100B15150FH0FH 1111
9、B1111B5 505H05H0101B0101B161610H10H 0001 0000B 0001 0000B6 606H06H0110B0110B171711H11H 0001 0001B 0001 0001B7 707H07H0111B0111B181812H12H 0001 0010B 0001 0010B8 808H08H1000B1000B191913H13H 0001 0011B 0001 0011B9 909H09H1001B1001B202014H14H 0001 0100B 0001 0100B10100AH0AH1010B1010B212115H15H 0001 010
10、1B0001 0101B数制转换数制转换 二进制数与十六进制数相互转换二进制数与十六进制数相互转换 二进制数转换成十六进制数二进制数转换成十六进制数 整数部分整数部分: 自右向左,四位一组,不足四位,向左填零,各部自右向左,四位一组,不足四位,向左填零,各部分用相应的十六进制数替代;分用相应的十六进制数替代; 小数部分小数部分: 自左向右,四位一组,不足四位,向右填零,各部自左向右,四位一组,不足四位,向右填零,各部分用相应的十六进制数替代;分用相应的十六进制数替代;二进制二进制十六进制十六进制二进制二进制十六进制十六进制000001000800011100190010210101000113
11、10111101004110012010151101130110611101401117111115 十六进制数转换成二进制数十六进制数转换成二进制数每位十六进制数分别用相应每位十六进制数分别用相应4位二进制数替代。位二进制数替代。 十进制数整数转换成十六进制数的方法:十进制数整数转换成十六进制数的方法:除除16取余法取余法 十进制数转换成二进制数、十六进制数十进制数转换成二进制数、十六进制数 十进制小数转换成二进制小数的方法:十进制小数转换成二进制小数的方法:乘乘2取整法取整法 整数部分的转换整数部分的转换 十进制整数转换成二进制整数的方法:十进制整数转换成二进制整数的方法: 除除2取余法取
12、余法 小数部分的转换小数部分的转换 十进制小数转换成十六进制小数的方法:十进制小数转换成十六进制小数的方法:乘乘16取整法取整法1 2 66 33 11 5 7 311111103.1 十进制十进制二进制的转换二进制的转换 q把一个十进制整数依次除以把一个十进制整数依次除以2,并记下每次所得的,并记下每次所得的余数(余数(1或或0),最后所得的余数的组合即为转换的十),最后所得的余数的组合即为转换的十进制数。第一位余数为最低位(进制数。第一位余数为最低位(LSB),最后一个余),最后一个余数为最高位(数为最高位(MSB)。)。q例如:例如: 126= 1111110B126= 1111110B
13、q例如:例如:213=11010101B 213=11010101B q 2 1 31 0 65 32 61 36301001111十进制数转换成二进制例如:0.318=0.010100010B溢出整数 小数部分2 剩余小数部分 0 0.3182=0.636 0.636 1 0.6362=1.272 0.272 0 0.2722=0.544 0.544 1 0.5442=1.088 0.088 0 0.0882=0.176 0.176 0 0.1762=0.352 0.352 0 0.3522=0.65 0.65 1 0.652=1.3 0.3 3.2 十进制十进制十六进制的转换十六进制的转换
14、 q十进制转换成十六进制与十进制转换成二进制方法一样,只是除数为16而不是2。而余数是0F中的任一个数。 q例如: 9168=23D0H 9 1 6 85 7 303 51 323返回返回二进制数和十六进制数运算二进制数和十六进制数运算【例【例】00110101B00110101B+ +10011100B10011100B1 二进制数四则运算二进制数四则运算规则:规则:0 + 0 = 0,0 + 1 = 1 + 0 = 1, 1 + 1 = 0(向高位进(向高位进1)。)。11010001B11010001B1.1 二进制数加法运算二进制数加法运算【例【例】10110101B10110101B
15、- -10011100B10011100B规则:规则:0 0 = 0,1 0 = 0,1 1 = 0, 0 1 = 1(向高位借(向高位借1)。)。1.2 二进制数减法运算二进制数减法运算 00011001B00011001B11011101 1.3 二进制数乘法运算二进制数乘法运算 规则:规则:00=0,10=01=0,11=1。【例【例】 1101B1101B 1001B1001B1110101B1110101B+ 1101+ 11011.4 二进制数除法运算二进制数除法运算规则:规则:00=0,01=0,11=1。1 111101110【例【例】 11011101111011011101
16、1010011001 11011101 11011101 常用有“与”、“或”、“非”、“异或”等逻辑运算。 (1)“与”:AND,“有0出0,全1出1”,C=AB, 运算规则:00=0, 01=0,10=0,11=1 (2)“或”:OR,“有1出1,全0出0”,C=A + B, 运算规则:0+0=0, 0+1=1, 1+0=1, 1+1=1 (3)“非”:NOT,“求反”,C= 运算规则: (4)“异或”:XOR,“异则1,同则0”,C= A B,运算规则:0 0=0, 1 0=1,0 1=1, 1 1=0 例如:DAH、99H两个数的四种运算方法如下:A 与:DAH 99H=98H; 或:
17、DAH + 99H=DBH; 异或:DAH + 99H=43H; 如图:2.1 二进制数二进制数“与与”运算运算规则:规则:0 0 = 0,1 0 = 0, 1 0 = 0,1 1 = 1。【例【例】10110101B10110101B 10011100B10011100B10010100B10010100B规则:规则: 0 0 = 0,1 0 = 1, 1 1 = 1,0 1 = 1。2.2 二进制数二进制数“或或”运算运算【例【例】10110101B10110101B 10011100B10011100B10111101B10111101B2.4 二进制数二进制数“异或异或”运算运算规则:
18、规则:00 = 0,01 = 1, 10 = 1,11 = 0。【例【例】10110101B10110101B 10011100B10011100B00101001B00101001B3 十六进制数运算十六进制数运算先将十六进制数转换成二进制数,先将十六进制数转换成二进制数,然后根据二进制运算法则进行运算,然后根据二进制运算法则进行运算,再转换成再转换成十六进制数十六进制数。计算机只能识别0、1两种信息,那么“符号数”在计算机中如何表示呢?(8位二进制数)比如RAM中某单元的内容是 EFH 11101111B,代表十进制数多少呢? 又如,+17,-17计算机是如何识别的呢?符号数的表示法符号数
19、的表示法 试问:+17又是如何表示呢?( 00010001B) 1、机器数与真值、机器数与真值 符号的数码化:将符号用“0正1负”表示,并以二进制数的最高位(D7位)作为符号位。例如:(原码) +91=0 1011011 = 5BH; -91=1 1011011= -5BH; 机器数:数据在计算机中连同数码化的符号位一起 表示的编码数。 真 值:把机器数实际代表的数称为机器数的真值。 2、原码表示法、原码表示法 D7位作为符号位(0正1负),D6D0为原来的 二进制数值位。 例如:(+55)原 =0 0110111 (- 55)原 =1 0110111 特点: 1)8位二进制数表示的范围:-1
20、27 +127; 2)(+0)原=00000000B,(0)原=10000000B不相; 3)加、减运算困难。 3、反码表示法、反码表示法 正数的反码 = 正数的原码 负数的反码 = 相应正数的原码按位取反 例如:(+0)反 = 0 0000000;(+127)反 = 0 1111111 (- 0)反 = 1 1111111;(-127)反 = 1 0000000特点: 1)范围 -127 +127; 2)+0、-0不相等; 3)求真值时,若D7=1,则按位取反。 4、计算机内符号数的补码表示法、计算机内符号数的补码表示法 (1)引例一)引例一:钟表调时 如图:10点6点,可以逆时针拨,也可顺
21、时针拨: 逆拨:逆拨: 10 4 = 6 (减)(减) 顺拨:顺拨: 10 + 8 = 18 = 12 + 6 = 6 (加)(加) 在顺拨中,12可自然丢失,称为模;而8被称为是 4的补码补码。 显然钟表采用十二进制,系统所能表示的最大量程为12,称之为模(基)。 8 = 12 4 =12 + (4) ( 4)补 = 12 4 =12 +( 4) = 8 即: (X)补)补 = 模模 + X (2)二进制补码的计算方法)二进制补码的计算方法 正数的补码 = 正数的原码 负数的补码 = 反码加1(相应正数的原码按位取反,再加1) 例如: (-127)补 = 10000001 (-1)补 = 1
22、1111111 特点:1)补码的符号位作为数值的一部分符号位作为数值的一部分,可以参加运算; 2)0只有一种表示,即 + 0 = - 0 = 00000000; 3)表示范围:-128+127(80H7FH); 4)比原码多一种组合,即1000 0000(-128)其最高位“1” 既表示符号,又表示数值; 5)求真值时,若D7 = 1,则通过对补码再求补,添“-”而得; 作用: 将减法运算转换为加法运算。 练习: 1)十进制数8,18,113的补码(负数F8;EEH;8FH),2)补码数1BH,C9H的真值 (+27;-55)3)5 8=0000 0101 00001000=00000101+
23、1111 1000=FDH4) 8位二进制数的模? ( 256=1 0000,0000=1111 1111+1) 补码的进一步解释:补码的进一步解释:引例二引例二:十进制数(以二位十进制数举例)70 - 40 =30引例三引例三:二进制数(以8位二进制数举例) 40H +(-32H)补 =40H+CEH= 10EH = 256 + 0EH=0EH原码、反码和补码对应关系表原码、反码和补码对应关系表 无符号二进制数无符号二进制数 无符号十进制数无符号十进制数 原码原码 反码反码 补码补码 000000000+0+00000000011+1+1+1000000102+2+2+20111110112
24、5+125+125+12501111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-12611111101253-125-2 -311111110254-126-1-211111111255-127-0-1常用编码常用编码 8421 BCD8421 BCD码码称为称为二二- -十进制数十进制数或简称或简称BCDBCD码码 (Binary Coded Decimal Code)(Binary Coded Decimal Code),用标识符用标
25、识符BCDBCD表示。表示。 特点特点:保留了十进制的权,每一位:保留了十进制的权,每一位十进制数字则用二进制码表示。十进制数字则用二进制码表示。一、一、8421 BCD8421 BCD码码 编码方法编码方法 二二- -十进制数十进制数是十进制数,逢十进一,只是数符是十进制数,逢十进一,只是数符0 09 9用用4 4位二进制码位二进制码 0000 0000 1001 1001 表示而已;表示而已; 每每4 4位以内位以内按二进制进位按二进制进位; 4 4位与位与4 4位之间位之间按十进制进位按十进制进位。 转换关系转换关系 BCD BCD码与十进制数相互转换关系码与十进制数相互转换关系 BCD
26、 BCD码与二进制数相互转换关系码与二进制数相互转换关系 BCDBCD码与二进制数之间不能直接相互转换,通常码与二进制数之间不能直接相互转换,通常要先转换成十进制数。要先转换成十进制数。【例【例】将二进制数将二进制数01000011B01000011B转换成转换成BCDBCD码。码。解:解:01000011B= 67= 0110 011101000011B= 67= 0110 0111BCDBCD 需要指出的是需要指出的是: 决不能把决不能把0110011101100111BCDBCD误认为二进制码误认为二进制码01100111B01100111B,二进制码,二进制码01100111B0110
27、0111B的值为的值为103103,而而0110011101100111BCDBCD 的值为的值为6767,显然两者是不一,显然两者是不一样的。样的。 BCDBCD码运算码运算 BCDBCD码用码用4 4位二进制数表示,但位二进制数表示,但4 4位二进制数位二进制数最多可表示最多可表示1616种状态,余下种状态,余下6 6种状态,种状态,1010101011111111在在BCDBCD编码中称为编码中称为非法码非法码或或冗余码冗余码。在。在BCDBCD码码的运算中将会出现冗余码,需要作某些修正,才的运算中将会出现冗余码,需要作某些修正,才能得到正确能得到正确的结果。的结果。 若相加后的低若相加
28、后的低4 4位(或高位(或高4 4位)二进制数大于位)二进制数大于9 9,或大于,或大于1515(即低(即低4 4位或高位或高4 4位的最高位有进位的最高位有进位),则应对低位),则应对低4 4位(或高位(或高4 4位)加位)加6 6修正修正。修正方法修正方法:二、二、ASCIIASCII码码 用二进制编码表示各种字母和符号用二进制编码表示各种字母和符号ASCIIASCII码码(American StandedAmerican Standed Code for Information Code for Information InterchangeInterchange,美国信息交换标准代码)
29、。,美国信息交换标准代码)。 作用作用:ASCIIASCII编码表编码表 b7b6b5 b4b3b2b1 0000010100111001011101110000NULDLESP0P、p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;Kk1100FFFS,Nn1111SIUS/?OoDELASCIIASCII码用码用7 7位二进制数表示:位二进制数表示: 高高3 3位组位组 低低4 4位组位组 b7 b6 b5 b4 b3 b2 b1小 结 1、计算机中的数制和常用编码、进位计数制及其转换、二进制常用编码(BCD码、ASCII码、 2、带符号数的表示方法(真值、原码、反码、补码)、二进制数的算术、逻缉运算 重点:进位计数制及其转换、带符号数的表示方 法(真值、原、反码、补码)极其转换 难点:补码的概念