一、写出下列各数的按权展开式,注意字母代表相应进制。
1011.0011B = 1 ^ 2 3 +1^2 1 +1^2 0 +1^2 -3 +1^2 -4
735.642Q = 7^8 2 +3^8 1 +5^8 0 +6^8 -1 +4^8 -2 +2^8 -3
AB.CDH = 10^16 1 +11^16 0 +12^16 -1 +13^16 -2
二、完成下列题目,根据本章所学方法要求必须有转换过程。
1、把下列十进制的数转换成二进制:(注意箭头顺序)
11.375
2、把下列十进制的数转换成八进制(保留两位小数):
205.74(注意题目中保留两位小数得说明,和最后加个Q 标志位)
完成下列题目,根据本章所学方法要求必须有转换过程。
1、把二进制数10110.0011分别转八进制、十六进制
2、把八进制37.26Q转二进制
3、把AB.CDH转换成二进制
4、把八进制37.26Q转十六进制
注意最后加上 Q和H 标志位
一位八进制 = 三位二进制
一位16进制 = 四位二进制
小数补0的时候,往后补
整数补0的时候,往前补
四、完成下列题目,根据本章所学方法要求4, 5 有转换过程。
定点整数才有移码,定点小数没有;
符号位:0表示正数,1表示负数;
正数的原、补、反都是相同的;
定点整数的正数移码:符号位取反,数值位不变;
负数的反码:符号为不变,数值位取反;
负数的补码:符号位不变,数值位取反加1;
负数的移码:补码的符号位取反,数值位不变;
原转补 和 补转原 是一样的过程。正数一样,负数取反加一
真值:原码形式,[+-].[原码数值]
1、求出符号数补码11100110B的原码和真值。* [X]补=11100110B [X]原=10011010B 真值= -11010
2、求出符号数11100110B分别表示定点整数、定点小数的原码、反码及补码。*
11100110B 原码 反码 补码 定点整数 11100110B 10011001B 10011010B 定点小数 1.1100110B 1.0011001B 1.0011010B
3、求出-11011001B的移码。
-11011001B的移码:000100111B
4、写出二进制数-110.0101的规格化浮点数形式。阶码取4位补码,尾数是8位原码。
如果题目要求写规格化标准形式就得写成: 尾数符号位 阶码 尾数数值部分 小技巧:如果求尾数是补码形式的规格化,可以先求原码形式的规格化,然后在把尾数转成补码就行,因为阶码和符号位都一样。相反亦是一样。
浮点数规格化:
尾数的数值位最高位不为0,但是要看尾数是原码表示的还是补码表示的,
如果是原码表示的,尾数的数值位最高位就是1。如果是补码表示的尾数,要看是负数还是正数,正数最高位也是1,因为正数的原反补都是一样的。负数的话,取反加1,所以最高位就变成了0。(补码尾数:符号位和数值位相反)
所以在规格化的过程中看尾数是原码还是补码按照上面的原则去移小数点就行。
-110.0101=1.1100101^23=1.1100101^20011
5、设传送信息是100110111001,生成多项式为x5+x2+1,计算校验位及CRC码。
M(x):Cn-1*X^n-1+Co,需要传输的n位二进制数据,用多项式表示出来;
G(x):生成多项式,一般是预先提供的。也是用多项式写出来的。规则同上。
所以一般根据给定的Gx多项式,可以得到实际的二进制数。
Eg: Gx= x 5 +x 2 +1 =1x^5+0x^4+0x^3+1x^2+0x^1+1x^0=100101 ;
校验位:需要校验的数据M(x)除(k+1)位的G(x)得到k位余数,就是校验位。 所以一般根据Gx的位数减一得到校验位的位数。
Eg: Gx= x 5 +x 2 +1 =1x^5+0x^4+0x^3+1x^2+0x^1+1x^0=100101 校验位式6-1=5位;
G(x)X^k :补k位0到需要传输的数后面。可以写做:(x)左移k位;
模2除法,见上面图;
CRC校验码:原数值+校验位(余数)
解:G(x)= 100101=x5+x2+1, 校验码5位
M(x)x5=10011011100100000,(x)左移5位
用模2除法,求R(x)
校验位:01010
CRC码:10011011100101010
五、已知x= 0.1011 ,y=- 0.1001 ,定点一位乘求x*y。
定点数原码一位乘规则:
符号位去掉,最后根据是否异号和同好再给符号;其实是根据竖式乘法,演变来的,很好理解。加一次(被乘数第n位乘数),左移一次,再加一次(被乘数第n位乘数),直到被乘数加完
五、已知x=- 0.0101 ,y= 0.1101 ,加减交替法求x / y
恢复余数法:
如果最后得到的余数为负数,要再恢复一次得到余数,商不变,就是余数再加一次除数得到准确的余数,也不用右移,直接加;余数别忘了乘2^-n;
前置计算需要注意的,都是去除符号位进行计算,然后除法都是减法,所以要先得到除数的[-y]补 ,这里的y是原除数的绝对值。
不恢复余数除法(加减交替发)
如果最后一次计算上商为0,也要加上除数,恢复余数;
负数商为0,然后加除数。正数商为1,然后减除数。
上面两个方法都是 减法运算之后,得到负数 上商为0,正数上商为1;
计算过程:
1、先得到[-y]补
2、第一次减y(相当于加上[-y]补),判断结果,一般第一次都是负数,所以商都是0,也就是小数点前面的0
需要注意的点
1、最后余数为负数时,记得加除数恢复余数;
2、别忘了判断商的符号
3、别往了余数乘以2^ - n
解:[ y] 补= 0.1101 ,[ -y] 补 =1.0011 ,|x |=0.0101
因为x为负,y为正
所以 x/y 的商为- 0.0110 ,余数为0 .0010*2 -4
七、已知x= 0.10110 ***** 2 010 ,y= 0.11011 ***** 2 001 ,尾数补码形式,阶码原码形式,求x+y,x-y
举例:补码1.001 右移2位 1.11001
解:(1)
①对阶。ΔE=Ex-Ey=010-001=001
Eyʼ=010, Wyʼ=0.011011
②尾数求和。Wx+y=00.10110+00.011011=01.000111
③规格化。Wx+yʼ=0.1000111, Eʼ=010+001=011
④舍入。Wx+yʼ=0.10001
⑤溢出判断。阶码无溢出。
X+Y=0.10001*2011
(2)
①对阶。ΔE=Ex-Ey=010-001=001
Eyʼ=010, Wyʼ=0.011011, [-Wyʼ]补=1.100101
②尾数求和。Wx+y=00.10110+11.100101=00.010001
③规格化。Wx+yʼ=00.10001,Eʼ=010-001=001
④舍入。Wx+yʼ=0.10001
⑤溢出判断。阶码无溢出。
X-Y=0.10001*2001