前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >二进制 补码 反码 原码「建议收藏」

二进制 补码 反码 原码「建议收藏」

作者头像
全栈程序员站长
发布2022-09-27 10:51:45
9680
发布2022-09-27 10:51:45
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君

1、二进制补码的计算方法

二进制的补码计算非常简单,各种教材中也经常使用二进制来说明源码、反码与补码三者的关系,掌握一定基础的人都知道一下规则:

1.1 原码

最高位为符号位,0表示正数,1表示负数。

代码语言:javascript
复制
例如:
X = 0b11 (3),四比特表示原码 = 0011(3) ;

X = - 0b11(-3) ,四比特表示原码 = 1011(11) ;

1.2 反码

最高位为符号位,0表示正数,1表示负数。

正数的反码等于本身,负数的反码除符号位外,各位取反:

代码语言:javascript
复制
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ;

X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12)  ;

1.3 补码

最高位为符号位,0表示正数,1表示负数。

正数的补码等于本身,负数的补码等于反码+1:

代码语言:javascript
复制
例如:
X = 0b11 (3),四比特表示原码 = 0011(3),对应反码为 = 0011(3) ,补码为 = 0011(3);

X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13)  ;

2、十进制的补码计算方法

对于十进制数来说,通过前面的性质不难得到正十进制数补码等于其本身,对于负十进制数来说如果还按位进行运算就太麻烦了!为了讲明白,我们从补码的起因说起:

“反码加一”只是补码所具有的一个性质,不能被定义成补码。负数的补码,是能够和其相反数相加通过溢出从而使计算机内计算结果变为0的二进制码。这是补码设计的初衷,具体目标就是让1+(-1)=0,这利用原码是无法得到的:

二进制 补码 反码 原码「建议收藏」
二进制 补码 反码 原码「建议收藏」

例如前面举得例子:

代码语言:javascript
复制
例如:
X = - 0b11(-3) ,四比特表示原码 = 1011(11),对应反码为 = 1100(12),补码为1101(13)  ;
二进制 补码 反码 原码「建议收藏」
二进制 补码 反码 原码「建议收藏」

如果使用python的话,可以使用&来快速获取补码:

代码语言:javascript
复制
-3&0xf
Out[1]: 13
    
5&0xf
Out[2]: 5

这里的0xf指的是0b1111,表示4位的寄存器。如果是7位寄存器,0b111111就是0x3f。

3、已知补码怎么求原码?

对于正数来说,根据前面的介绍很容易知道 原码=补码=反码,接下来主要讨论给定负数的补码怎么求负数的原码:

3.1 二进制

先说结论:补码的补码就是原码。下面开始证明:

二进制 补码 反码 原码「建议收藏」
二进制 补码 反码 原码「建议收藏」

上面两式子说明了:

二进制 补码 反码 原码「建议收藏」
二进制 补码 反码 原码「建议收藏」

也就是说补码的补码就是原码,有点负负得正的意思哦。

3.2 十进制

二进制 补码 反码 原码「建议收藏」
二进制 补码 反码 原码「建议收藏」

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/179168.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、二进制补码的计算方法
    • 1.1 原码
      • 1.2 反码
        • 1.3 补码
        • 2、十进制的补码计算方法
        • 3、已知补码怎么求原码?
          • 3.1 二进制
            • 3.2 十进制
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档