1、第二章微机原理中的数制和编码第二章微机原理中的数制和编码1. 1. 数制的基本概念数制的基本概念 2. 2. 各进制数间的相互转换各进制数间的相互转换3. 3. 数的补码表示及求补运算数的补码表示及求补运算4. 4. 溢出判断溢出判断5. 5. 数字与字符的编码数字与字符的编码 第二章微机原理中的数制和编码第二章微机原理中的数制和编码 无符号数的表示及运算 无符号数的表示方法 1.1. 十进制数的表示方法 十进制计数法的特点是: 逢十进一; 使用10个数字符号(0,1,2,9)的不同组合来表示一个十进制数; 以后缀D或d表示十进制数,但该后缀可以省略。 第二章微机原理中的数制和编码任何一个十进
2、制数可表示为: 110nmiiiDDN 式中:m表示小数位的位数,n表示整数位的位数,Di为第i位上的数符。 138.5(D)= 1012105108103101第二章微机原理中的数制和编码2 2.二进制数的表示方法 二进制计数法的特点是: 逢二进一; 使用2个数字符号(0,1)的不同组合来表示一个二进制数; 以后缀B或b表示二进制数。 第二章微机原理中的数制和编码任何一个二进制数可表示为: 12nmiiiBBN 式中:m为小数位的位数,n为整数位的位数,Bi为第i位上的数符。 1101.11B= )(75.13212121202121210123D第二章微机原理中的数制和编码3 3.十六进制
3、数的表示法 十六进制计数法的特点是: 逢十六进一; 使用16个数字符号(0,1,2,3,9,A,B,C,D,E,F)的不同组合来表示一个十六进制数,其中AF 依次表示1015; 以后缀H或h表示十六进制数。 第二章微机原理中的数制和编码任何一个十六进制数可表示为: 116nmiiiHHN 式中:m为小数位的位数,n为整数位的位数,Hi为第i位上的数符。 0E5AD.BFH =21012316151611161316101651614第二章微机原理中的数制和编码一般来说,对于基数为X的任一数可用多项式表示为: 1nmiiiXXkN 式中:X为基数,表示X进制;i为位序号;m为小数部分位数;n为整
4、数部分的位数; 为第i位上的数值,可以为0,1,2,X-1共X个数字符号中任一个; 为第i位的权。 ikiX第二章微机原理中的数制和编码 二进制、十六进制以至任意进制数转换为十进制数,只要按公式将各位按权展开(即该位的数值乘于该位的权)求和即可。 2.1.2 各种数制的相互转换1任意进制数转换为十进制数第二章微机原理中的数制和编码1)整数部分的转换 可见,要确定13D对应的二进制数,只需用13除以基数2,直到商为0,然后从下到上读出余数从即为其对应二进制数。 13D 1101B1322226余数1031110 该方法也适用于将十进制整数转换为八进制整数、十六进制整数以至其它任何进制整数。第二章
5、微机原理中的数制和编码2).小数部分的转换0.75D0.11B13.751101.11DB 可见,要确定0.75D对应的二进制数,只需用0.75乘基数2,取出乘积的整数部分,然后将小数部分继续乘2,如此继续直至某一次乘积为1。然后从上倒下读出取出的乘积部分即为其对应二进制小数。 0.7521.5120.511乘积整数部分 显然,该方法也适用于将十进制小数转换为八进制小数、十六进制小数以至其它任何进制小数。第二章微机原理中的数制和编码 整数部分:28=1CH, 小数部分:0.75=CH, 因此,28.75=1C.CH 将28.75转换为十六进制数。第二章微机原理中的数制和编码 将十六进制数转换为
6、二进制数的方法:直接将每一位十六进制数写成其对应的四位二进制数。 3二进制数与十六进制数之间的转换 将二进制数转换为十六进制数的方法:以小数点为界,向左(整数部分)每四位为一组,高位不足4位时补0;向右(小数部分)每四位为一组,低位不足4位时补0。然后分别用一个16进制数表示每一组中的4位二进制数。例例2.6 2F.1BH=10 1111.0001 1011B 第二章微机原理中的数制和编码十进制数、二进制数、十六进制数之间的关系如下表: 第二章微机原理中的数制和编码 二进制数的运算(1)加: 0+0=0 0+1=1 1+0=1 1+1=0(进1)(2)减:0-0=0 1-1=0 1-0=1 0
7、-1=1(借位)(3)乘:00=0 01=0 10=0 11=1(4)除: 二进制除法是乘法的逆运算。第二章微机原理中的数制和编码(1)“与“运算(AND) “与”运算又称逻辑乘,可用符号“”或“”表示。运算规则如下:00=0 01=0 10=0 11=1 2. 二进制数的逻辑运算 只有当两个变量均为“1”时,“与”的结果才为“1”。第二章微机原理中的数制和编码 “或”运算又称逻辑加,可用符号“”或“+”表示。运算规则如下:00=0 01=1 10=1 11=1 (2)“或”运算(OR) 两个变量只要有一个为“1”,“或”的结果就为“1”。 第二章微机原理中的数制和编码(3)“非”运算(NOT
8、)逻辑“非”运算规则如下:10 01 变量 的“非”运算结果用 表示。AA两变量只要不同,“异或”运算的结果就为“1”。 (4)“异或”运算(XOR) “异或”运算可用符号“ ”表示。运算规则如下:011101110000第二章微机原理中的数制和编码例例2.7 A=11110101B, B=00110000B,求 ?BABABABABBA00110000BBA11110101BBA11000101BA00001010BB11001111解:第二章微机原理中的数制和编码2.2 带符号数的表示及运算 机器数与真值 在计算机中,为了区别正数和负数,通常用二进制数的最高位表示数的符号。规定用“0”表示
9、正,“1”表示负。 把一个数及其符号位在机器中的一组二进制数表示形式,称为“机器数”。机器数所表示的值称为该机器数的“真值”。 10001000机器数真值8如:第二章微机原理中的数制和编码 带符号数的三种表示方法带符号数的三种表示方法最高位为符号位正数负数01第二章微机原理中的数制和编码原码的特点:原码的特点:(1)数值部分即为该带符号数的二进制值。(2)“0”有0和0之分,若字长为8位,则:(3)n位二进制原码能表示的数值范围为:00原000000001原00000001121 21nn第二章微机原理中的数制和编码正数的反码与其原码相同。负数的反码是在原码基础上,除符号位外按位取反。第二章微
10、机原理中的数制和编码反码的特点:反码的特点:(1)“0”有0和0之分,若字长为8位,则:00反000000001反1111111(2)n位二进制反码能表示的数值范围为:1121 21nn第二章微机原理中的数制和编码(1)生活中的补码生活中的补码顺时针较表(做加法):9512(模值丢失)2逆时针较表(做减法):972总结:总结:(1)加法和减法等价。加法和减法等价。(2)补码加法的规定:如【)补码加法的规定:如【5】补】补5 正数的补码是其本身,负数的补码是模值减负数的绝对值。正数的补码是其本身,负数的补码是模值减负数的绝对值。 如:【如:【5】补】补12|5|=7 (3)补码加法可变减法为加法
11、来做,如:补码加法可变减法为加法来做,如:97【9】补【】补【7】补】补952故补码加法能有效地把加法和减法问题统一起来。故补码加法能有效地把加法和减法问题统一起来。第二章微机原理中的数制和编码求补码的规则:求补码的规则:(1)正数的补码与其原码、反码相同。 (2)负数的补码是在原码基础上,除符号位外按位取反,再在末位加1。(2)计算机中的补码)计算机中的补码第二章微机原理中的数制和编码补码的特点:补码的特点:(1)“0”有无0和0之分,若字长为8位,则:0000000000 补补(2)n位二进制补码能表示的数值范围为:11221nn第二章微机原理中的数制和编码8位二进制数的原码、反码和补码表
12、位二进制数的原码、反码和补码表 原码反码补码+0+1+2 +126+127-0-1 -125-126-127+0+1+2 +126+127-127-126 -2-1-0+0+1+2 +126+127-128-127 -3-2-1 二进制数 无符号十进制数0000 00000000 00010000 0010 0111 11100111 11111000 00001000 0001 1111 11011111 11101111 1111012 126127128129 253254255带 符 号 数第二章微机原理中的数制和编码 xx原补补对负数而言,xx补原等于带符号位取反后末位1第二章微机原
13、理中的数制和编码解解 x原= x补=00001111B, x=+(026+025+024+123+122+121+120)=15 y原=y补补=10011011B, y=-(026+025+124+123+022+121+120)= -27 例例2.10 0000111111100101xB yBxy补补已知,求 和 。第二章微机原理中的数制和编码 补码的加减运算补码的加减运算补码的加法规则:补码的减法规则为:补补补yxyx补补补补补yxyxyx 符号位和数值位一起参加运算,并且自动获符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。得结果(包括符号位与数值位)。第二章微机原
14、理中的数制和编码 例例 已知 +51补=0011 0011B,+66补=0100 0010B, -51补=1100 1101B, -66补=1011 1110B 求求 +66补+51补=?+66补+-51补=?-66补+-51补=? 解 二进制加法 0100 0010 + 66补 +) 0011 0011 + 51补 0111 0101 +117补 十进制加法 + 66+) + 51 +117故: +66补+51补=(+66)+(+51)补=01110101B第二章微机原理中的数制和编码 二进制(补码)加法 十进制加法 0100 0010 + 66补 +66+) 1100 1101 51补 +
15、) 51 0000 1111 +15补 +151自动丢失 二进制(补码)加法 十进制加法 1011 1110 - 66补 -66+) 1100 1101 51补 +) 51 1000 1011 -117补 -1171自动丢失故: +66补+51补=(+66)+(51)补=00001111B故: 66补+51补=(66)+(51)补=10001011B第二章微机原理中的数制和编码 已知+51补=0011 0011B,+66补=0100 0010B51补=1100 1101B,66补=1011 1110B求 +66补+51补=?66补 51补=? 解: +66补 +51补=+66补+51补=000
16、01111B 66补 51补=66补+51补=11110001B 第二章微机原理中的数制和编码 二进制(补码)加法 十进制加法 1011 1110 - 66补 -66+) 0011 0011 +51补 -) +51 1111 0001 -15补 -15 二进制(补码)加法 十进制加法 0100 0010 + 66补 +66+) 1100 1101 51补 -) +51 0000 1111 +15补 +151自动丢失第二章微机原理中的数制和编码 溢出及其判断方法1. 溢出的概念 溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。若超出该范围,称为溢出。此时
17、运算结果出错。 单符号位法。通过符号位和数值部分最高位的进位状态来判断结果是否溢出。2. 溢出的判断正溢出、负溢出第二章微机原理中的数制和编码 若符号位进位状态用CF来表示,当符号位向前有进位时,CF=1,否则,CF=0;数值部分最高位的进位状态用DF来表示,当该位向前有进位时,DF=1,否则,DF=0。单符号位法就是通过该两位进位状态的异或结果来判断是否溢出的。 若OF=1,说明结果溢出;若OF=0,则结果未溢出。也就是说,当符号位和数值部分最高位同时有进位或同时没有进位时,结果没有溢出,否则,结果溢出。 DFCFOF第二章微机原理中的数制和编码 设有两个操作数x=01000100B,y=0
18、1001000B,将这两个操作数送运算器做加法运算,试问: 若为无符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出? 解解 第二章微机原理中的数制和编码 设有两个操作数x=11101110B,y=11001000B,将这两个操作数送运算器做加法运算,试问: 若为无符号数,计算结果是否正确? 若为带符号补码数,计算结果是否溢出? 带符号数1CF 解解无符号数238200438补-18补-56补-74第二章微机原理中的数制和编码第二章微机原理中的数制和编码第二章微机原理中的数制和编码2.3 信信 息息 的的 编编 码码 数字的编码 这种编码法分别将每位十进制数字编成4位二进制代码,从
19、而用二进制数来表示十进制数。最常用的是8421码。 BCD码是一种常用的数字编码,是一种二进制编码的十进制数。记为 BC D第二章微机原理中的数制和编码例0100 1001 0001.0101 1000BCD0100 0011B = 67D = 0110 0111BCD BCD码与二进制之间通常要经过十进码与二进制之间通常要经过十进制实现相互转换。制实现相互转换。 第二章微机原理中的数制和编码 1压缩型BCD码 压缩型BCD码用一个字节表示两位十进制数。例如,10000110B表示十进制数86。 2非压缩型BCD码 非压缩型BCD码用一个字节表示一位十进制数。高4位总是0000,低4位用000
20、01001中的一种组合来表示09中的某一个十进制数。 BCD码有两种形式,压缩型BCD码和非压缩型BCD码。 第二章微机原理中的数制和编码 69.81=(0110 1001.1000 0001)BCD 十进制数与BCD数相互转换。 将十进制数69.81转换为压缩型BCD数: 将BCD数1000 1001.0110 1001转换为十进制数: (1000 1001.0110 1001)BCD=89.69 第二章微机原理中的数制和编码 字符的编码ASCII码是常用的字符编码。码是常用的字符编码。 ASCII 码用7位二进制编码表示数字、字母和 符号。在字长8位微型计算机中,用低7位表示ASCII码,
21、最高位可用作奇偶校验位。第二章微机原理中的数制和编码ASCII码码(7位代码位代码) 第二章微机原理中的数制和编码汉字的编码 补 第二章微机原理中的数制和编码第二章微机原理中的数制和编码其中包括:第二章微机原理中的数制和编码第二章微机原理中的数制和编码2.4 数的定点与浮点表示法数的定点与浮点表示法 2.4.1 定点表示定点表示 所谓定点表示法,是指小数点在数中的位置是固定的。原理上讲,小数点的位置固定在哪一位都是可以的,但通常将数据表示成纯小数或纯整数形式,如图所示。符号位数值位小数点(a)符号位数值位小数点(b)图2.1 定点数的两种表示方法(a) 纯小数形式;(b) 纯整数形式 第二章微
22、机原理中的数制和编码 举例说明:举例说明:当数字量为当数字量为7FH时,对应的模拟量时,对应的模拟量100X2512 . 5 1第二章微机原理中的数制和编码 设用一个n+1位字来表示一个数x,其中一位表示符号位(0表示正,1表示负),其他n位为数值位。对于纯小数表示法,所能表示的数x (原码表示,下同)的范围为: (12n)x12n 它能表示的数的最大绝对值为12n,最小绝对值为2n。 对于纯整数表示法,所能表示的数x的范围为: (2n1)x2n 1 它能表示的数的最大绝对值为2n1,最小绝对值为1。 第二章微机原理中的数制和编码2.4.2 浮点表示浮点表示 所谓浮点表示法,就是小数点在数中的
23、位置是浮动的。 任意一个二进制数x总可以写成如下形式: 其中,d称为尾数,是二进制纯小数,指明数的全部有效数字,尾数前的一位称为数符,表示数的符号,该位为0,表明该浮点数为正,该位为1,表明该浮点数为负;p称为阶码,阶码前一位称为阶符,阶符为正时,用0表示,阶符为负时,用1表示。阶符阶 码(p )数符尾 数(d )1位m位1位n 位2pxd 第二章微机原理中的数制和编码举例说明:举例说明:第二章微机原理中的数制和编码第二章 结束!第二章微机原理中的数制和编码习 题1.将下列十进制数分别转换为二进制数和十六进制数:2.将下列二进制数分别转换为十进制和十六进制数:3.完成下列加减法运算。4.取字长
24、为8位,将下列真值转换为二进制补码形式。 X=-33 Y=-965.设机器字长为8位,最高位为符号位,试对下列各式进行二进制补码运算,并判断结果是否溢出,若有溢出是正溢出,还是负溢出。-52+7 60+90 -90+(-70) 60-90第二章微机原理中的数制和编码习 题6.若有4种微处理器的地址引脚数分别为8条、16条、20条以及32条,则这四种微处理器分别能寻址多少字节的存储单元?7.分别写出下列字符串的ASCII码:10ab AE98 B#Dd xyzi Hello Comorade第二章微机原理中的数制和编码作 业5.计算下列表达式的值:128.8125+10110101.1011B+1F.2H= B287.68-10101010.11B+8E.EH= H18.9+1010.1101B+12.6H-1011.1001B= D9.设有变量 ,试计算请问:若为无符号数,计算结果是否正确?若为带符号补码数,计算结果是否溢出?11101111 ,11001001 ,01110010 ,xB yB zB01011010vB