注意:下面内容中的数字均用8位二进制数表示。

原码

  • 最高位(最左边)代表符号位,0代表正数,1代表负数。

例:

1 的原码是 0000 0001-1 的原码是 1000 0001

反码

  • 正数的反码与原码一致。

  • 负数的反码是对原码按位取反,只是最高位(符号位)不变。

例:

1 的反码是 0000 0001-1 的反码是 1111 1110

补码

  • 正数的补码与原码一致。

  • 负数的补码是该数的反码加1。

  • 计算机数字运算均是基于补码的。

  • 单字节(8位)运算的模为256=2^8。负数的补码为模减去该数的绝对值。

例:

1 的补码是 0000 0001-1 的补码是 1111 1111

补码优势

  • 如果计算机内部采用原码来表示数,那么在进行加法和减法运算的时候,需要转化为两个绝对值的加法和减法运算。计算机既要实现加法器,又要实现减法器,代价有点大。

  • 化减为加,举一个生活中的例子来说明这个问题:时钟一圈是360度,当然也存在365度,但其实它和360度是一样的;相同的道理,-30度表示逆时针旋转30度,其与顺时针旋转330度是一样的;

这里数字360表示时钟的一圈,在计算机里类似的概念叫,它可以实现化减为加,本质上是将溢出的部分舍去而不改变结果。

实例

15  => 原码: 0000 1111 => 反码: 0000 1111 => 补码: 0000 1111+ (-5) => 原码: 1000 0101 => 反码: 1111 1010 => 补码: 1111 1011---------------------------------------------------------------按反码计算后结果: 0000 1010转换为十进制是: 10

参考

  • https://www.jianshu.com/p/36ec7a047f29

  • https://zhidao.baidu.com/question/401222353.html

原码反码补码的转换方法相关推荐

  1. 关于计算机中 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  2. 原码, 反码, 补码, 移码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  3. 关于 原码 反码 补码 位运算

    二进制 原码:最高位为符号位,0为正  1为负 正数的原码 反码 补码 都是相同的 反码:负数的反码为原码符号位不变 其它对应变化(1变0 0变1) 补码:等于 反码+1 3^-3 =? 运算过程 - ...

  4. 10.原码 反码 补码

    +7的原码:0000 0111 -7的原码:1000 0111   第一位0代表正数,1代表负数,第一位为符号位 +7的反码:0000 0111 正数反码和原码一样 -7的反码:1111 1000   ...

  5. java进制原码_Java 一一 进制、原码 反码 补码、移位操作

    进制 二进制 和 十进制 相互转换 十进制 和 十六进制 相互转换 原码,反码,补码 原码.反码.补码: 在计算机内, 有符号数有三种表示法: 原码, 反码, 补码. 所有的数据的运算都是采用 补码 ...

  6. 大端 小端 原码 反码 补码 及内存中的表现

    小端 和 大端 在内存中存储时,都是从内存的低地址往高地址存,即0x00000000 -> 0xffffffff 以汉字 "严"为例,Unicode码是4E25,需要两个字节 ...

  7. 原码 反码 补码 详解

    一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式,  叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放 ...

  8. python二进制反码例题_python中的进制转换和原码,反码,补码

    python中的进制转换和原码,反码,补码 计算机文件大小单位 b = bit 位(比特) B = Byte 字节 1Byte = 8 bit #一个字节等于8位 可以简写成 1B = 8b 1KB ...

  9. 原码 反码 补码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

最新文章

  1. Excel异常Cannot get a text value from a numeric cell
  2. PHP预防XSS攻击,ajax跨域攻击的方法
  3. 调试 SharePoint 解决方案
  4. 创业型公司的产品经理应该知道的事情
  5. 牛客网 链表结构 算法相关内容
  6. 性能测试测试环境与生产环境_不在生产中测试? 在生产中进行测试!
  7. Python对DICOM图像进行阈值分割
  8. bi导入数据失败 power_主机数据库平台迁移 6 个典型问题
  9. 2021计算机科学调剂,2021北京科技大学计算机科学与技术专业接收调剂研究生的通知...
  10. 计算机科学论文生成器,数学论文生成器:从此一天一篇不再愁
  11. 遥感数据下载——土地利用(覆盖)数据下载
  12. 计算机里的音乐怎么设置,realtek高清晰音频管理器怎么设置
  13. git设置 mergetool为kdiff3
  14. Win10释放C盘空间的一些办法
  15. 3D游戏编程与设计作业五
  16. 田野调查手记·浮山篇(九)
  17. 电脑视频转换成mp4格式,视频格式转换器转换
  18. 心蓝android版本,心蓝抢票app-心蓝抢票软件预约 _5577安卓网
  19. ip地址位置提供商查询 cip.cc/ip
  20. history.pushState()

热门文章

  1. python before_request详解
  2. 实例详解Matlab费诺编码
  3. QQ空间运营 怎么做一个QQ人气号?
  4. 解决启动报错Consider defining a bean of type ‘xxx‘ in your configuration.
  5. [附源码]java毕业设计商务酒店管理系统
  6. 【每天学点管理】——如何避免时间浪费,管理者必须具备的时间管理方法
  7. 张涵予乘风而下 《集结号》过后的平静
  8. 软件项目管理考点整理(Software Project Management)
  9. scrapy抓取cnblog新闻
  10. [转]高效工作的信息搜集及管理术