1. 假定机器数为8位(1位符号,7位数值),写出下列各二进制小数的原码表示。
+0.1001,–0.1001,+1.0,–1.0,+0.010100,–0.010100,+0,–0
参考答案:
题中各二进制数的原码表示如题1表所示。
题1表 小数的原码表示
数值 |
原码 |
+0.1001 |
0.1001000 |
–0.1001 |
1.1001000 |
+1.0 |
溢出 |
–1.0 |
溢出 |
+0.010100 |
0.0101000 |
–0.010100 |
1.0101000 |
+0.0 |
0.0000000 |
–0.0 |
1.0000000 |
- 假定机器数为8位(1位符号,7位数值),写出下列各二进制整数的补码和移码表示。
+1001,–1001,+1,–1,+10100,–10100,+0,–0
参考答案:
题中各二进制数的补码和移码表示如题2表所示。
题2表 整数的补码和移码表示
数值 |
补码 |
移码 (偏置常数=1 0000000时) |
移码 (偏置常数=0 1111111时) |
+1001 |
0 0001001 |
1 0001001 |
1 0001000 |
–1001 |
1 1110111 |
0 1110111 |
0 1110110 |
+1 |
0 0000001 |
1 0000001 |
1 0000000 |
–1 |
1 1111111 |
0 1111111 |
0 1111110 |
+10100 |
0 0010100 |
1 0010100 |
1 0010011 |
–10100 |
1 1101100 |
0 1101100 |
0 1101011 |
+0 |
0 0000000 |
1 0000000 |
0 1111111 |
–0 |
0 0000000 |
1 0000000 |
0 1111111 |
3. 已知 [x]补,求x
(1)[x]补=1110 0111 (2)[x]补=1000 0000
(3)[x]补=0101 0010 (4)[x]补=1101 0011
参考答案:
(1)x=-0011001=-25 (2)x=-10000000=-128
(3)x=+1010010=82 (4)x=-0101101=-45
4.假定32位字长的机器中带符号整数用补码表示,浮点数用IEEE 754标准表示,寄存器R1和R2的内容分别为R1:0060 0000H,R2:8080 0000H。不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器R1和R2的内容,则R1和R2中操作数的真值分别为多少?
- 无符号数加法指令
- 带符号整数乘法指令
- 单精度浮点数减法指令
参考答案:
根据题意,寄存器R1的内容为0000 0000 0110 0000 0000 0000 0000 0000,寄存器R2的内容为1000 0000 1000 0000 0000 0000 0000 0000。
(1)对于无符号数加法指令,R1和R2的内容均被解释成无符号整数,即R1的真值为60000H=222+221=6 291 456,R2的真值为80800000H=231+223=2 155 822 256。
(2)对于带符号整数乘法指令,R1和R2的内容均被解释为补码整数,由最高位可知, R1为正数;R2为负数。R1的真值为+60000H=222+221=6 291 456;R2的真值为– 111 1111 1000 0000 0000 0000 0000 0000B = –(230+229+228+227+226+225+224+223) = –(231–223)= –2 139 095 040。
(3)对于单精度浮点数减法指令,R1和R2的内容均为IEEE 754单精度浮点数表示。
由R1的内容可知,其符号位为0, 表示正数, 阶码为0000 0000, 尾数部分为110 0000 0000 0000 0000 0000,因为阶码为全0、尾数为非0数,故R1是非规格化浮点数,其指数为–126,尾数为0.11B, 故R1表示的真值为–0.11B×2-126 = –0.75×2-126。
由R2的内容可知,其符号位为1, 表示负数,阶码为0000 0001,尾数部分为000 0000 0000 0000 0000 0000,因而R1为规格化浮点数,其指数为1–127 = –126,尾数为-1.0B,故R2表示的真值为-1.0×2-126 =-2-126。
5. 假定机器M的字长为32位,用补码表示带符号整数。题5表中第一列给出了在机器M上执行的C语言程序中的关系表达式。分别考虑在ISO C90和C99标准下,参照已有表栏内容完成表中后三栏内容的填写,并对其中的关系表达式“2147483647 < 2147483648”的结果进行说明。
题5表
关系表达式 |
运算类型 |
结果 |
说明 |
0 == 0U –1 < 0 –1 < 0U 2147483647 > –2147483647 – 1 2147483647U > –2147483647 – 1 2147483647 < 2147483648 –1 > –2 (unsigned) –1 > –2 |
无符号整数 带符号整数 |
0 1 |
11…1B (232–1) > 00…0B(0) 011…1B (231–1) > 100…0B (–231) |
参考答案:
在ISO C90标准下的执行结果如下表所示。
序号 |
关系表达式 |
运算类型 |
结果 |
说明 |
1 |
0 == 0U |