背景知识:

原码,反码,补码,‘移码’,反码只是原码转变成补码的一个中间状态值,在计算机中无其他用处。

正数的原码,反码,补码相同。

负数的反码是原码取反(符号位不变),负数的补码是其反码加1(符号位不变)。

要了解反码,先要了解补数。

减法计算例子,正15加上负15  15+(-15)=0

15的二进制为00001111(最高位为符号位),-15的二进制为10001111(最高位为符号位),两者相加等于10011110为-30,与理论结果不符。

换位思考,时钟10点处要移到7点处,有两种方式,顺时钟9小时,逆时针3小时,如图所示

补数的定义,

负数取模

小结

一个负数可用它的正补数来代替,而这个正补数可以用模加上负数本身来得到。

一个正数和一个负数互为补数时,两数的绝对值之和为模

正数的补数为其自身。

计算

回到正15加上负15  15+(-15)=0

15的原码二进制为0000 1111(最高位为符号位),-15的原码二进制为1000 1111(最高位为符号位),-15的反码二进制为1111 0000(最高位为符号位),

15的原码加-15的反码等于0000 1111+1111 0000=1111 1111为-127(符号位参与计算),只有在1111 1111基础上再加0000 0001才会变成1 0000 0000(去掉最高位,得0),所以可以将反码加1变成补码(符号位不变)。

补码的作用

将计算机中的减法计算变成了加法计算,不用计算机中设计减法器,用硬件电路同时实现加法器和减法器较复杂。

只要一种加法电路就可以处理各种有符号数加法,而且减法可以用一个数加上另一个数的补数来表示,因此只要有加法电路及补数电路即可完成各种有符号数的加法及减法,电路设计上相当方便。

负数的补码为什么是反码加1相关推荐

  1. 为什么负数的补码是取反加一

    为了方便进行机器采用位运算来表示加法运算: 举例说明: 1 的4位二进制表示0001 -1的4位二进制表示1001 -1的4位二进制反码表示1110(符号位不变,其它位取反) -1的4位二进制补码表示 ...

  2. 负数、原码、反码、补码

    @Testpublic void testName() throws Exception {/** 负整数的二进制是怎么存的?* 在计算机中,负数以其正值的补码形式表达.* 什么叫补码呢?这得从原码, ...

  3. 为什么定义补码等于反码加一,知其所以然

    如何你看到了这篇文章,想必你应该是一个爱思考,善于学习的人! 我们经常说:补码=反码+1,但为什么要这样去定义补码呢?补码,反码被早期计算机学家设计出来的目的是什么呢? 下面我们就对上面的问题进行详细 ...

  4. 正数负数的原码,反码,补码

    转载自:https://blog.csdn.net/zj15527620802/article/details/80362535 转载自:http://www.01happy.com/computer ...

  5. 正数负数的原码、反码、补码

    假设有一个 int 类型的数,值为5,那么,它在计算机中表示为: 00000000 00000000 00000000 00000101 5转换成二制是101,不过int类型的数占用4字节(32位), ...

  6. 计算机中的位运算—正数,负数,原码,反码,补码

    计算机中正数是按照原码存储的,负数是按照补码存储的 下面举例 1 和-1,按照8位存储. : 正数:正数的原码,反码,补码都和原码一样,即正常的二进制表示. 负数:原码就是正常的二进制表示.反码就是原 ...

  7. [例题详解]真值 机器数概念 | 原码 反码 补码 移码 概念及加减计算

    目录 真值和机器数 原码 反码 补码 移码 对比记忆 | 原 反 补 移码 加减法 | 原码 补码 结语 | 大学生学习复习资料 真值和机器数 真值:-5.+10 机器数(带符号数)(= 符号位 [0 ...

  8. 正数、负数求原码、反码、补码

    二进制,有符号数,首位为1的是负数,首位为0的是正数.(规定) 无符号数没有正负之分,所以也没有首位的限制.(规定) (以下示例皆以八位二进制表示) 无符号数 无符号数的原码.反码.补码都一样,皆为该 ...

  9. 深入理解 原码,反码,补码——证明补码等于反码加1

    文章目录 前言 利用同余数 直接得到 补码 同余数 推导 总结 从原码到反码到补码 原码 反码 反码的问题 解决反码出错的式子 总结 补码 补码解决了跨越问题 为什么补码等于反码+1 前言 根据冯~诺 ...

最新文章

  1. 第 1 章 容器生态系统 - 003 - 容器生态系统 (续)
  2. uva10401Injured Queen Problem(递推)
  3. HTTP(S)协议详解
  4. C++Gaussian-elimination高斯消元法的实现算法(附完整源码)
  5. 《数据库SQL实战》查找所有已经分配部门的员工的last_name和first_name
  6. oracle job定时报错,Oracle Job定时任务的使用详解
  7. 【ZZ】Python安装模块出错(ImportError: No module named s...
  8. 为何马云“惧怕”沃尔玛
  9. 在C++程序中调用被C编译器编译后的函数为什么要加extern“C”?
  10. 几何畸变的类型_第七讲 几何纠正(摄影测量与遥感).pdf
  11. 通过界面上传jar包到maven Nexus私服
  12. ios动态创建类Class
  13. memcpy和strcpy的区别
  14. SPI 通信协议详解
  15. 27亿美元的NASA「毅力号」成功登陆火星!还带了一架1%大气密度也能飞的无人机...
  16. 企业邮箱登录入口和界面如何设置
  17. 小猫特别聪明的shoow
  18. uni-app获取设备序列号SERIAL
  19. exchange2007+outlook2007,无法使用外出助理
  20. 北斗导航软件怎么下载?

热门文章

  1. ios xmpp 文件传输
  2. C++学习第三弹之浮点数
  3. 利用Spring Boot WebMagic MyBatis 爬数据并存入mysql
  4. 数学公式编辑软件有哪些?高效软件说明
  5. JavaScript第二十二章 跨域资源共享
  6. Java电话薄期末大作业
  7. 《计算机双目立体视觉》学习笔记:对极几何
  8. 项目八学好英语网html,专业8级英语
  9. IDEA插件CamelCase使用技巧:下划线转驼峰及大小写转换插件和快捷键
  10. 洛谷 P1983 车站分级