浅谈原、反、补码

但凡接触计算机相关知识的朋友们,应该都碰到过原码、反码、补码这三兄弟。那么接下来就简单的介绍一下他们的性格特点。
(一)总括
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“”,用1表示“”,而数值位三种表示方法各不相同。
(二)原码
是最简单的机器数表示法。用最高位表示符号位,‘1’表示负号,‘0’表示正号。其他位存放该数的二进制的绝对值。
例如:+1的原码是:0000 0001,-1的原码是1000 0001。
对于原码来说,由于第一位被用作了符号位,因此一个8位的二进制数,其表示范围是:[-127,127]
(三)反码
正数的反码还是等于原码
负数的反码就是他的原码除符号位外,按位取反。
例如:+1的反码是:0000 0001,-1的反码是1111 1110。
对于反码来说,与原码类似,由于首位被用作了符号位,因此表示范围也是:[-127,127]
(四)补码
正数的补码等于他的原码
负数的补码等于反码+1。
例如:+1的补码是:0000 0001, -1的补码是:1111 1111。
对于补码来说,虽然最高位也被用作了符号位,但是却可以表示-128,因此其取值范围是:[-128, 127]

显而易见,

  • 若要求得一个数值的补码,那么只需按原—反—补的步骤,求出每个码字;
  • 若要求得一个数值的原码,那么只需按补—反—原的步骤,即:“减1取反”。
    看到这,可能有的朋友会有迷惑求原码该是“取反加1”,其实对于二进制来说,“减1取反”和“取反加1”的效果是一样的,所以补码的补码就是原码源,这也为我们增加了一种求原码的方式,朋友们可以自己尝试一番,便可得出该结论。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值