一个数的原码,反码,补码怎么算

2024-11-22 09:24:20
推荐回答(3个)
回答1:

数字,存在计算机中,就是“码”。

在计算机中,没有原码和反码。

计算机,只是使用“补码”来存放“正负数”。

以八位为例:

数字 0 的存放形式是:0000 0000。

数字+1,就是加上一:0000 0001。

数字+2,就再加上一:0000 0010。

数字+3,就依此类推:0000 0011。

... ... 依次加一,即可。

----------

负数,就是依次减一。

数字 0 的存放形式是:0000 0000。

数字-1,就是减一:0000 0000-1,

 只保留八位,可得:1111 1111(=255)。

数字-2,就再减一:1111 1110(=254)。

数字-3,继续减一:1111 1101(=253)。

... ... 然后你就依次减一吧 ... ...

----------

以上,是计算机中的补码。

---------

八位补码的表示范围:-128~+127。

八位补码的计算公式:

  正数的补码:就是正数本身。

  负数的补码:256-该负数。

  (如果需要二进制,你就再转换一下。)

---------

补码,完全是由二进制加一减一自然形成的,和原码反码没有任何关系。

计算机中,也没有原码和反码。

所以,原码和反码,都没有任何用处。

回答2:

补码的运算:听老师讲解真值、原码、反码和补码

回答3:

举例说明如下:
真值 -11d = -1011b , 若字长8位, 则:
[-11d]原 =10001011b , 最高位是符号位,1表示负数,其余为数值位
[-11d]反 =11110100b , 将原码除符号位之外的各位取反得反码
[-11d]补 =11110101b ,将反码末位加1得补码
d是十进制数后缀 , b是二进制数后缀
若是正数,无须上述操作。原码=反码=补码=真值,例如:
真值20d =10100b, 若用8位字长机器数表示,则:
[20]原 =[20]反 =[20]补 =00010100b
最高位是符号位,0表示正数,符号右侧用两个0补齐8位