所以A87.B8H=101010000111.10111000B。
八进制的基数同样是2的幂,因此二进制与十六进制之间的转换也遵循以上的原则,只是将原则中的四位改成三位。
例如:将二进制数11010110.110101B转换成八进制数。 将八进制数746.42O转换成二进制数。
011 010 110 . 110 101 7 4 6 . 4 2
所以,11010110.110101B=326.65O, 746.42O=111100110.100010B 三、八进制数和十六进制数运算 1.二进制数的运算
加法法则 乘法法则 0+0=0 0+1=1 1+0=1
1+1=0(进位1)
0 X 0=0 0 X 1=0 1 X 0=0 1 X 1=1
3
2
6 6 5 111 100 110 100 01
注意:二进制数加法运算中1+1=0(进位1)和逻辑运算中1∨1=1的不同含义。
2.十六进制数的运算
十六进制数的运算遵循“逢十六进一”的原则。 ① 十六进制加法:
十六进制数相加,当某一位上的数码之和S小于16时与十进制数同样处理,如果数码之各S≧16时,则应该用S减16及进位1来取代S。
例如:
0 8 A 3 H
+ 4 B 8 9 H 5 4 2 CH
② 十六进制减法
十六进制减法也与十进制数类似,够减时直接相减,不够减时服从向高位借1为16的原则。
例如:
0 5 C 3 H
-3 D 2 5 H
C 8 9 E H
十六进制数的乘除运算同样根据逢十六进一的原则处理,这里不再繁述。
第四讲
一、授课内容:
计算机中数和字符的表示 二、授课类型:讲授 三、授课时数:2学时
四、教学目标:熟悉计算机中数和字符的表示 五、教学重、难点:
重点/难点:计算机中数和字符的表示 六、教学设想:
借助产品、作品演示,一方面可以使课堂生动,另一方面可以腾出大量时间加强对重难点知识的讲解,增强学生对知识的理解,同时提高他们对本学科的兴趣. 七、教学过程:(板书) 一、计算机中有符号数的表示。
计算机中的数是用二进制来表示的,有符号数中的符号也是用二进制数值来表示,0表示“+”号,1表示“-”号,这种符号数值化之后表示的数称之为机器数,它表示的数值称之为机器数的真值。
为将减法变为加法,以方便运算简化CPU的硬件结构,机器数有三种表示方法:即原码、反码和补码。 1.原码
最高位为符号位,符号位后表示该数的绝对值。 例如:
[+112]原=01110000B [—112]原=11110000B
其中最高位为符号位,后面的7位是数值(字长为8位,若字长为16位,则后面15位为数值)。
原码表示时+112和-112的数值位相同,符号位不同。 说明:
① 0的原码有两种表示法: [+0 ]原=00000000B [-0]原=10000000B
② N位原码的表示范围为:1-2N—1 ~ 2N—1-1。 例如8位原码表示的范围为:-127~+127 2.反码
最高位为符号位,正数的反码与原码相同,负数的反码为其正数原码按位求反。
[+112 ]反=01110000B [–112]反=10001111B 说明:
① 0的反码有两种表示法:
[+0 ]反=00000000B [-0]反=11111111B
② N位反码表示的范围为: 1-2n—1-2n—1-1; 例如8位反码表示的范围为 –127-+127。 ③ 符号位为1时,其后不是该数的绝对值。 例如反码11100101B的真值为–27,而不是–101。 3.补码
最高位为符号位,正数的补码与原码相同;负数的补码为其正数原码按位求反再加1。
例如: [+112]补 =01110000B [—112]补 =10010000B
说明:
① 0的补码只有一种表示法:[+0]=[—0]=00000000B; ② n位补码所能表示的范围为—2n—1-2n—1—1; 例如8位补码表示的范围为-128-+127。
③ 八位机器数中:[—128]补=10000000B,[-128]原,[-128]反不存在。
④ 符号位为1时,其后不是该数的绝对值。
例如:补码11110010B的真值为–14,而不是–114。
有符号数采用补码表示时,就可以将减法运算转换为加法运算。因此计算机中有符号数均以补码表示。
例如:
X=84-16=(+84)+(–16)→[X]补=[+84]补+[–16]补
(+84)补 =01010100B (–16)补=11110000B
0 1 0 1 0 1 0 0B + 1 1 1 1 0 0 0 0B 0 1 0 0 0 1 0 0B 1
所以 [X]补=01000100B,即X=68。
在字长为8位的机器中,第7位的进位自动丢失,但这不会影响运算结果。 机器中这一位并不是真正丢失,而是保存在程序状态字PSW中的进位标志Cy中。
又如:X=48-88=(+48)+(-88)→[X]补=[+48]补+[—88]补
[+48]补 =00110000B [-88]补=10101000B 0 0 1 1 0 0 0 0B + 1 0 1 0 1 0 0 0B
1 1 0 1 1 0 0 0B
所以 [X]补=11011000B,即X=-40。
为进一步说明补码如何将减法运算转换为加法运算,我们举一日常的例子:对于钟表,它所能表示的最大数为12点,我们把它称之为模,即一个系统的量程或所能表示的最大的数。若当前标准时间为6点,现有一只表为9点,可以有两种调时方法:
① 9-3=6(倒拨) ② 9+9=6(顺拨)
即有9+9=9+3+6=12+6=9-3
因此对某一确定的模,某数减去小于模的一数,总可以用加上该数的负数与其模之各(即补码)来代替。故引入补码后,减法就可以转换为加法。
补码表示的数还具有以下特性: [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补
附表3为n=8和n=16时n位补码表示的数的范围。 附表3 n位二进制补码数的表示范围
十进制数 +127 +126 . +2 +1 二进制数 N=8 01111111 01111110 . 00000010 00000001 十六进制数 7F 7E . 02 01 十进制数 n=16 +32767 +32766 . +2 +1 7FFF 7FFE . 0002 0001 十六进制数