假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000 00000000 00000000 00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
现在想知道,-5在计算机中如何表示?
在计算机中,负数以原码的补码形式表达。
什么叫补码呢?这得从原码,反码说起。
原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。
比如 00000000 00000000 00000000 00000101 是 5的 原码。
10000000 00000000 00000000 00000101 是 -5的 原码。
反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)
比如:正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101
负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。
称:11111111 11111111 11111111 11111010 是 10000000 00000000 00000000 00000101 的反码。
反码是相互的,所以也可称:
10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。
补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
比如:10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。
那么,补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011
所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。
再举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取-1的原码:10000000 00000000 00000000 00000001
2、得反码:     11111111 11111111 11111111 11111110(除符号位按位取反)
3、得补码:     11111111 11111111 11111111 11111111
可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF
主要知识点:
正数的反码和补码都与原码相同。
而负数的反码为对该数的原码除符号位外各位取反。
负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1
下面是书上原文:
原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。
反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.
正零和负零的补码相同,[+0]补=[-0]补=0000 0000B

补码 原码 反码相关推荐

  1. 补码原码反码溢出问题

    数据的机器层次表示 文章目录 数据的机器层次表示 2.1 补码+原码+反码 1. 原码表示法 2. 补码表示法 3. 反码表示法 4. 三种表示法比较 2.2 原码补码加减法运算 1. 补码加法 2. ...

  2. 补码原码反码简单理解

    补码原码反码简单理解 看到一句I2S的data是以补码形式来表现数据.再次查阅得出以下只管结论: ####1,首先直观举例机器里面是如何存放有符号数的:#### 1在机器里面表示为 0000 0001 ...

  3. 计算机原理原码反码,计算机原理 计算 —11011011补码( ) 原码( ) 反码( )11001010补码 原码 反码...

    -11011011补码( 100100101 ) 原码(111011011 ) 反码(100100100 ) 11001010补码 11001010 原码 11001010 反码 11001010 ( ...

  4. 原码 反码 补码 之间在小数正数间的转换

    原码 反码 补码 之间在小数正数间的转换 基本转换 对于正数 原码等于反码等于补码(小数也一样) 对于负数 原码除了符号位取反即反码 反码基础之上+1即补码 但是在遇到某些题时候还是会混淆,比如三者在 ...

  5. 由Python位运算到原码反码补码

    采用书籍Python核心编程(第二版),人民邮电出版社,2008年7月第1版.本书以Python2.5为主,但笔记主要以Python3.6为主. 一.Python位运算操作符 Python支持标准位运 ...

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

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

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

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

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

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

  9. 051_原码反码补码概念

    1. 反码的范围 1.1. 反码表示法规定: 正数的反码与其原码相同.负数的反码是对其原码逐位取反, 但符号位除外. 1.2. 在规定中, 8位二进制码能表示的反码范围是-127~127. 1.3. ...

最新文章

  1. Opencv实现透视形变
  2. 直流稳压电源的输出特性有哪些
  3. AutoFac使用方法总结:Part III
  4. Django实战(20):分页(Pagination)
  5. 深度学习核心技术精讲100篇(四十二)-阿里妈妈深度树匹配技术演进:TDM->JTM->BSAT
  6. python封装 继承 多态 举例_python面向对象中的封装、继承、多态
  7. 打开Android Studio报错“Error running ***: Please select Android SDK”
  8. Python爬取王者荣耀皮肤
  9. javascript中的array对象属性及方法
  10. 无需拆机,Kindle 全系列 5.12.2.2 ~ 5.14.2版本如何越狱?如何安装第三方插件
  11. Markdown 笔记神器 Typora 如何上传本地图片(图床功能)?
  12. 【Opencontrail】对接k8s基本原理
  13. Redis分布式锁故障,我忍不住想爆粗...
  14. 产品经理的职责有哪些?该做什么?
  15. 听小S教你如何瘦小腿
  16. day4. jetson nx 确认 SPI 时钟
  17. 菜鸟也可以自己封装万能ghost系统
  18. 语言环境设置命令locale 命令(linux,对应于window 7(win叫什么命令?)控制面板-区域和语言里的设置)
  19. tcp/ip通讯 linux xpe,XPE最基本组件 分享
  20. 关于电子科技大学(清水河校区)门禁设置的调研

热门文章

  1. 到底什么是ISDN呢?
  2. codeforces 706B
  3. 计算机网络 (ISP、计算机网络体系结构 拓扑图)
  4. python面向过程还是面向对象_python是面向对象还是面向过程?
  5. Coursera-AI for everyone Week 2 Quiz
  6. Groovy/Gradle:
  7. php微信公众号开发,获取用户头像,并下载;
  8. 小记:让页面自适应屏幕分辨率
  9. Google开始研究Web中的结构化数据
  10. mysql整理_Mysql基本操作整理