如题所述
举例说明如下:
真值 x = -133d = -1000 0101b , b是二进制数后缀, d是十进制数后缀,
[-x]原 =1000 0000 1000 0101b,
以上原码最高位是符号位, 1表示负数 , 符号位与数值位之间的空位补0,补齐16位
[-x]反 =1111 1111 0111 1010b , 将原码除符号位之外的数值位取反得反码
[-x]补 =1111 1111 0111 1011b ,将反码末位加1得补码
真值 x = -133d = -1000 0101b , b是二进制数后缀, d是十进制数后缀,
[-x]原 =1000 0000 1000 0101b,
以上原码最高位是符号位, 1表示负数 , 符号位与数值位之间的空位补0,补齐16位
[-x]反 =1111 1111 0111 1010b , 将原码除符号位之外的数值位取反得反码
[-x]补 =1111 1111 0111 1011b ,将反码末位加1得补码
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-07-16
十六位机器码1110,0010,1000,0000
不管它是什么码,首先都要先将它转化为原码再做计算!
当它是原码时就直接转化为十进制的!
(注释2ˇ3=8)
=-(2ˇ7)+(2ˇ9)+(2ˇ13)+(2ˇ14)=-25216
-25216就是真值
!
当它是补码时:先将它转化为原码,方法就是补码的补码就等于原码!
补码:1110,0010,1000,0000
原码:1001,1101,1000,0000
=-(2ˇ7)+(2ˇ8)+(2ˇ10)+(2ˇ11)+(2ˇ12)=-7552
-7552就是真值
当它是反码时:
反码:1110,0010,1000,0000
原码:1001,1101,0111,1111
=-1+2+4+8+16+32+64+256+1024+2048+4096=-7551
-7551就是真值
不管它是什么码,首先都要先将它转化为原码再做计算!
当它是原码时就直接转化为十进制的!
(注释2ˇ3=8)
=-(2ˇ7)+(2ˇ9)+(2ˇ13)+(2ˇ14)=-25216
-25216就是真值
!
当它是补码时:先将它转化为原码,方法就是补码的补码就等于原码!
补码:1110,0010,1000,0000
原码:1001,1101,1000,0000
=-(2ˇ7)+(2ˇ8)+(2ˇ10)+(2ˇ11)+(2ˇ12)=-7552
-7552就是真值
当它是反码时:
反码:1110,0010,1000,0000
原码:1001,1101,0111,1111
=-1+2+4+8+16+32+64+256+1024+2048+4096=-7551
-7551就是真值