评测师之——原码、反码、补码、移码

原码、反码、补码

原码——最高位为符号位,0代表正数,1代表负数。

正数的原码、反码、补码,都是它本身。

负数的反码——保持符号位不变,对原码按位取反

负数的补码——它的反码加1

移码——无论正数、负数,在补码的基础上有符号位取反。

例子:

-43 原码:1010 1011

   反码:1101 0100

   补码:1101 0101

   移码:0101 0101

n位二进位原码表示的其取值范围:-( 2 n − 1 2^{n-1} 2n1-1)~ 2 n − 1 2^{n-1} 2n1-1

n位二进位反码表示的其取值范围:-( 2 n − 1 2^{n-1} 2n1-1)~ 2 n − 1 2^{n-1} 2n1-1

n位二进位补码表示的其取值范围: − 2 n − 1 -2^{n-1} 2n1~ 2 n − 1 2^{n-1} 2n1-1

补码表示与原码表示多表示一个数。
 

小技巧:

求负数的补码:符号位不变,其他的从低位开始,直到遇到第一个1之前,什么都不变。

遇到第一个1后保留这个1,以后按位取反。

[-30]原=1001 1110

[-30]补=1110 0010
 

在计算机中,最适合进行数字加减运算的数字编码是补码,最适合表示浮点数阶码的数字编码是移码。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值