6.4 设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。
-13/64,29/128,100,-87
-13/64,29/128,100,-87
解:十进制数 二进制数 原 码 反 码 补 码
-13/64 -0.00 1101 1.001 1010 1.110 0101 1.110 0110
29/128 0.001 1101 0.001 1101 0.001 1101 0.001 1101
100 110 0100 0,110 0100 0,110 0100 0,110 0100
-87 -101 0111 1,101 0111 1,010 1000 1,010 1001
6.5 已知[x]补,求[x]原和x.
[x]补 = 1.1100; [x]补 = 1.1001; [x]补 = 0.1110; [x]补 = 1.0000;
[x]补 = 1,0101; [x]补 = 1,1100; [x]补 = 0,0111; [x]补 = 1,0000;
解:[x]补 [x]原 x
1.1100 1.0100 -0.0100
1.1001 1.0111 -0.0111
0.1110 0.1110 0.1110
1.0000 1.0000 0
1,0101 1,1011 -1011
1,1100 1,0100 -0100
0,0111 0,0111 111
1,0000 1,0000 0
6.9 当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)
解: 原码 补码 反码 移码 无符号数
9B 二进制 -11011 -1100101 -1100100 +11011 1001
十进制 -27 -101 -100 +27 155
FF 二进制 -1111111 -0000001 -0000000 +1111111 1111 1111
十进制 -127 -1 -0 +127 255
6.11 已知机器数字长为4位(其中1位为符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制数真值。
解:
真值 (二进制) | 真值 (十进制) | 原码 | 反码 | 补码 | |
整 数 | +111 +110 +101 +100 +011 +010 +001 +000 -1000 -111 -110 -101 -100 -011 -010 -001 -000 | +7 +6 +5 +4 +3 +2 +1 +0 -8 -7 -6 -5 -4 -3 -2 -1 -0 | 0,111 0,110 0,101 0,100 0,011 0,010 0,001 0,000 无 1,111 1,110 1,101 1,100 1,011 1,010 1,001 1,000 | 同 原 码 无 1,000 1,001 1,010 1,011 1,100 1,101 1,110 1,111 | 同 原 码 1,000 1,001 1,010 1,011 1,100 1,101 1,110 1,111 0,000 |
小 数 | +0.111 +0.110 +0.101 +0.100 +0.011 +0.010 +0.001 +0,000 | +7/8 +3/4 +5/8 +1/2 +3/8 +1/4 +1/8 +0 | 0.111 0.110 0.101 0.100 0.011 0,.010 0.001 0.000 | 同 原 码 | 同 原 码 |
6.12 设浮点数格式为:阶符1位、阶码4位、数符1位、尾数10位,写出51/128、-27/1024、7.375、-86.5所对应的机器数。要求
(1) 阶码和尾数均为原码
(2) 阶码和尾数均为补码
(3) 阶码和移码,尾数为补码。
解:浮点数格式:
阶符1位 | 阶码4位 | 数符1位 | 尾数10位 |
将十进制数转换为二进制数:
x1= 51/128= 0.0110011B= 2-1 * 0.110 011B
x2= -27/1024= -0.0000011011B = 2-5*(-0.11011B)
则以上各数的浮点规格化数为:
(1)[x1]浮=1,0001;0.110 011 000 0
[x2]浮=1,0101;1.110 110 000 0
(2)[x1]浮=1,1111;0.110 011 000 0
[x2]浮=1,1011;1.001 010 000 0
(3)[x1]浮=0,1111;0.110 011 000 0
[x2]浮=0,1011;1.001 010 000 0
6.15 什么是机器零?若要求全0表示机器零,浮点数的阶码和尾数应采用什么机器数形式?
解:机器零是指机器数所表示的零的形式,它与真值零的区别是:机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。
6.16 设机器数字长为16位,写出下列各种情况下它所能表示的数的范围。设机器数采用一位符号位,答案均用十进制数表示。
(1) 无符号数
(2) 原码表示的定点小数
(3) 补码表示的定点小数
(4) 补码表示的定点整数
(5) 原码表示的定点整数
(6) 浮点数的格式为:阶符1位、阶码5位、数符1位、尾数9位(共16位)。分别写出其正数和负数的表示范围
(7) 浮点数格式同(6),机器数采用补码规格化形式,分别写出 其对应的正数和负数的真值范围。
解:(1) 无符号数:0 —— 2^16 – 1,即0 —— 65535
无符号小数:0 —— 1 – 2^-16,即0 —— 0.99998
(2) 原码定点小数:-1 + 2^-15 —— 1 - 2^-15,即-0.99997 —— 0.99997
(3) 补码定点小数:-1 —— 1 – 2^-15,即-1 —— 0.99997
(4) 补码定点整数:-2^15 —— 2^15 – 1,即-32768 —— 32767
(5) 原码定点整数:-2^15 + 1 —— 2^15 – 1,即-32767 —— 32767
(6) 根据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:
最大负数 = 1,11 111; 1,000 000 001,即-2^-9 * 2^-31
最小负数 = 0,11 111; 1.111 111 111,即-(1 - 2^-9) * 2^31
则负数表示范围为:-(1 – 2^-9) * 2^31 —— -2^-9 * 2^-31
最大正数 = 0,11 111: 0.111 111 111;即-(1 – 2^-9) * 2^31
最小正数 = 1,11 111; 0.000 000 001,即2^-9 * 2^-31
则正数表示范围为:2^-9 * 2^-31 —— (1 – 2^-9) * 2^31
(7) 当机器数采用补码规格化形式时,若不考虑隐藏位,则
最大负数 = 1,00 000; 1.011 111 111,即-2^-1 * 2^-32
最小负数 = 0,11 111; 1.000 000 000,即-1 * 2^31
则负数表示范围为:-1 * 2^31 —— -2^-1 * 2^-32
最大正数 = 0,11 111; 0.111 111 111,即(1 – 2^-9) * 2^31
最小正数 = 1,00 000; 0.100 000 000,即2^-1 * 2^-32
则正数表示范围为:2^-1 * 2^-32 —— (1 – 2^-9) * 2^31
6.17 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移1位、2位,
算术右移1位、2位,结果是否正确。
[x1]原 = 0.0011010; [y1]补 = 0.1010100; [z1]反 = 1.0101111
[x2]原 = 1.1101000; [y2]补 = 1.1101000; [z2]反 = 1.1101000
[x3]原 = 1.0011001; [y3]补 = 1.0011001; [z3]反 = 1.0011001
解:算术左移1位小数的原码
[x1]原 = 0.011 0100;正确
[x2]原 = 1.101 0000;溢出(丢1)出错
[x3]原 = 1.011 0010;正确
[y1]补 = 0.010 1000;溢出(丢1)出错
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论