原码、反码、补码、移码

机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数。
真    值:将带符号位的机器数对应的真正数值称为机器数的真值。
在计算机的存储中,机器数是带符号的,通常用最高位表示符号位,1表示负数,0表示正数.

例如:机器字长8位. 十进制的数5 表示成二进制为00000101.  -5则表示成10000101.    10000101 不表示133

 

原码:+|x|  或者  -|x|      (就是符号位0/1 加上真值的绝对值)
例如:
+1 的原码:0000 0001
-1  的原码:1000 0001

8位二进制表示的范围是:[1111 1111, 0111 1111] 即 [-127, +127].


反码:正数的反码=原码,负数的反码=符号位不变+其余每一位按位取反。

例如:
+1 的原码:0000 0001   +1 的反码:0000 0001
-1  的原码:1000 0001   -1  的反码:1111 1110

8位二进制表示的范围是 [1111 1111, 0111 1111] 即 [-127, +127].

 

补码:正数的补码=原码,负数的补码=反码+1

例如:

+1 的原码:0000 0001   +1 的反码:0000 0001    +1 的补码:0000 0001
-1  的原码:1000 0001   -1  的反码:1111 1110    -1  的补码:1111 1111

8位二进制表示的范围是 [0111 1111, 1000 000] 即 [-128, +127].


移码:不管正负,只要将其补码的符号位取反即可。

例如:

+1 的原码:0000 0001   +1 的反码:0000 0001    +1 的补码:0000 0001   +1 的移码:1000 0001
-1  的原码:1000 0001     -1  的反码:1111 1110      -1  的补码:1111 1111    -1   的移码:0111 1111
 

总结:

计算机中负数存储的方式是补码,由于正数的补码是它本身,所以可认为计算机内存储的是补码.

                  正数                                 负数
      原码                 0 + |x|                                         1 + |x|
     反码                0 + |x|        符号位不变,其余每一位按位取反
     补码              0 + |x|                              反码+1
     移码              1 + |x|                          补码的符号位取反

转载于:https://www.cnblogs.com/l20902/p/10610922.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值