第1章 计算机系统概述
0、1编码
更1、把BCD码化成对应十进制数:(01010001)8421BCD= ( )10
答案: 51
8421 BCD码是最基本和最常用的BCD码,它和四位自然二进制码相似,各位的权值为8、4、2、1,故称为有权BCD码。和四位自然二进制码不同的是,它只选用了四位二进制码中前10组代码,即用0000~1001分别代表它所对应的十进制数,余下的六组代码不用。如十进制数8的BCD码是1000。
1、分别求出+1111B和-1001B的真值及其机器数的原码、反码、补码形式。
答案:
+1111B的真值:15
原码01111 反码01111 补码01111
-1001B 的真值:-9
原码11001 反码10110 补码10111
另一种写法:
解: +1111B 真值:15D [x]原=01111B [x]反=01111B [x]补=01111B
-1001B 真值:-9D [x]原=11001B [x]反=10110B [x]补=10111B
知识点戳这里:位运算相关知识点详细总结
2. 把29.375转化成二进制数,并分别用8进制和十六进制以及二转十进制(BCD)码形式表示。
答案:
二进制:11101.011
8进制:35.3
16进制:1d.6
BCD:0010 1001.0011 0111 0101 BCD
另一种写法:
解: 29.375D=11101.011B=(35.3)8 =1d.6H=(0011 1001.0011 0111 0101)8421BCD=0011 1001.0011 0111 0101BCD
3. 将十进制数16.59375转换成IEEE754标准的32位浮点数的二进制存储格式。
整数转二进制
16 = 24 = 10000
小数部分转二进制:连续乘2取整
小数十转二进制会出现转换不完的情况。这时可按一定舍入规则,取到所需的位数。
0.59375 x2 = 1.1875……1
0.1875 x2 = 0.375……0
0.375 x2 = 0.75……0
0.75 x2 = 1.5……1
0.5 x2 = 1.0…… 1
所以小数部分转换成二进制为 0.10011
16.59375 = 10000.10011
此时将小数点向前移,直到小数点前保留一位。
1.000010011 * 24
符号位:S = 0
阶码:E = 4 + 127 = 131 = 10000011
位数:M = 000010011
所以转换成IEEE754标准的32位浮点数为:
0 10000011 00001001100000000000000
4、下列各数按照IEEE754标准32位浮点数的二进制存储格式为:
(1)0 11 111 110 111 000 000 000 000 000 000 00;
(2)1 00 000 001 100 000 000 000 000 000 000 00;
求与之对应的十进制数是什么?
答案:
(1)+(1+2-1 + 2-2 + 2-3)x 2127 = 2127+ 2126+ 2125 + 2124
(2)-(2-126+ 2-127)
(1)
首位符号位位0,正的
11111110 = 254
254 - 127 = 127
整数部分默认为1,小数部分是剩下的23位111 000 000 000 000 000 000 00
+(1+2-1 + 2-2 + 2-3)x 2127
(2)
首位符号位位1,负的
00 000 001 = 1
1- 127 = -126
整数部分默认为1