假定机器数为8位(1位符号,7位数值),写出下列各二进制整数的补码和移码(偏置常数为128)表示 +1001,-1001,+1,-1
我们已知机器数为8位,符号位为1位,数值位为7位,偏置常数为128。
首先,我们需要计算补码和移码。
1. 对于1001:
符号位:0(正数)
数值位:1001(二进制)= 1×2^6 + 0×2^5 + 0×2^4 + 1×2^3 = 64 + 0 + 0 + 8 = 72(十进制)
将数值转换为机器数表示:72-128=-56(偏置)
补码:-56(偏置)+72=16(二进制)=01000000(八进制)
移码:01000000(八进制)
2. 对于-1001:
符号位:1(负数)
数值位:-1001(二进制)= -1×2^6 + 0×2^5 + 0×2^4 + 1×2^3 = -64 + 0 + 0 + 8 = -56(十进制)
将数值转换为机器数表示:-56-128=-184(偏置)
补码:-184(偏置)+72=-112(二进制)=11111112(八进制)
移码:11111112(八进制)
3. 对于1:
符号位:0(正数)
数值位:1(二进制)= 1×2^0 + 0×2^1 + 0×2^2 + 0×2^3 = 1+0+0+0=1(十进制)
将数值转换为机器数表示:$1-128=-127$(偏置)
补码:$-127$(偏置)+$72=55$(二进制)=00010101(八进制)
移码:$00010101$(八进制)
免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。