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

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

1.1 原码

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

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

1.2 反码

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

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

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

1.3 补码

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

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

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

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

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

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

例如前面举得例子:

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

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

-3&0xf
Out[1]: 135&0xf
Out[2]: 5

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

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

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

3.1 二进制

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

上面两式子说明了:

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

3.2 十进制

二进制 补码 反码 原码相关推荐

  1. matlab由补码反码原码求值

    function B2Qw(X,choice) len=length(X); switch choicecase 1p=str2double(X(1))*(-1)*power(2,len-1);for ...

  2. 1.python实现二进制补码求原码

    def ori2com(ori_str):"""将原码字符串 -> 补码字符串:param ori_str:原码字符串:return:补码字符串"&quo ...

  3. 原码、反码、补码及补码转原码

    1. 什么是原码.反码.补码? 计算机要使用某种编码方式存储 原码, 反码, 补码是机器存储某个具体数字的编码 计算机底层存储的数据都是二进制形式的补码 对于一个正数来说,原码.反码.补码一致 对于一 ...

  4. 原码 反码 换算工具 补码_原码和补码的换算(原码反码补码转换工具)

    [-3]反=[10000011]反=11111100 原码 反码 负数的补码是将其原码除符号位之. 两个说法都没有错,我们举个例子来看看就明白了:1.10001的补码是取反后在再加1,也就是11110 ...

  5. c语言 补码转原码,C语言编程之二进制原码、反码和补码

    概述 在计算机内,有符号数有3种表示法:原码.反码和补码. 在计算机中,数据是以补码的形式存储的,所以补码在c语言的教学中有比较重要的地位,而讲解补码必须涉及到原码.反码. 详细释义 所谓原码就是二进 ...

  6. 进制转换 位运算(包括补码、原码、反码、~0等一些零碎东西一次说清)

    我发现网上关于标题上的内容介绍的都很零碎,因此为了方便查找.也为了本人对这一部分的充分理解,就想着写一篇这样的博客(我分成了几个部分,以便查找): 一.进制转换 让我们先来看看各个进制的定义: 十进制 ...

  7. 原码 反码 换算工具 补码_原码/反码/补码在线计算器

    原码/反码/补码计算器,在线计算给定整数的原码/反码/补码. 原码, 反码和补码的概念 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 原码 ...

  8. 原码 反码 换算工具 补码_原码,反码,补码相互转换在线计算器_三贝计算网_23bei.com...

    本计算软件适用于10进制.16进制.2进制数值原码.反码.补码的计算. 输入已知数据变量.选择已知变量的类型(支持原码(10进制).原码(16进制).原码(2进制).反码(2进制).反码(16进制). ...

  9. 任意位宽的补码转原码,原码转补码

    基础知识: 对于正数 正数:原码=反码=补码 对于负数: 原码->补码 和 补码->原码 的规律一样,都是 "取反加1" eg:以 -3 为例(前面的1,是符号位,0为 ...

最新文章

  1. 关于CSS样式清除浮动的总结
  2. 脉冲电子围栏系统介绍_网络型脉冲电子围栏系统介绍
  3. concat合并的数组会有顺序么_JS数组 Array
  4. 采用光线跟踪绘制场景 c++_虚拟演播室的跟踪系统以及色键器应要选择什么型号...
  5. matlab采样序列幅频特性,数字信号处理课设计指导书20130530.doc
  6. OpenShift 4 - 在控制台中安装使用 Web Terminal
  7. ListT to DataTable
  8. C#读取数据库返回泛型集合(DataSetToList)
  9. 在具有内置文本扩展功能的苹果Mac上如何更快的键入内容?
  10. Python的开源人脸识别库:离线识别率高达99.38%
  11. 外星人台式电脑_2020年双11:高端电竞游戏笔记本电脑本推荐:联想、惠普、雷神、ROG、外星人等品牌游戏本挑选指南...
  12. asp.net高校宿舍后勤管理系统案例
  13. Win10下连接树莓派ZeroW(附win10虚拟网卡驱动下载)
  14. L08-Linux解决Device eth0 does not seem to be present,delaying initialization问题
  15. 电脑技巧:Win10操作系统设置定时开机图解教程
  16. 图嵌入综述整理(上)
  17. 关于Navicat到期的办法(亲测有效)
  18. 北京,探索「宜居」的技术路径
  19. ACRCloud音乐识别python3版SDK,acrcloud_extr_tool.so导入报错
  20. rhce考试试题以及答案_RHCE考试题

热门文章

  1. 让1元钱变成两百万 三种赚100万的策略
  2. 符号对象 符号表达式
  3. L2TP与PPTP区别
  4. Android studio屡次停止运行
  5. POI推荐文献阅读笔记3:Predicting Human Mobility via Graph Convolutional Dual-attentive Networks
  6. 【单相桥式全控整流电路求解纲要】单相桥式全控整流电路,U2=100V,负载中R=2Ω,L值极大,反电势E=60V,当a=30度时,分析电路
  7. java 四级联动_四级联动
  8. Minio工具类 MinioUtils
  9. 人工智能时代 智能助理必须一切
  10. html中outline属性,css 轮廓(outline)属性是如何使用的