假设有一个 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. day07 -文件的基本操作
  2. 《C#图解教程》读书笔记之六:接口和转换
  3. 程序员崩溃的40个瞬间!!!
  4. ElasticSearch-Hadoop:从Hadoop到ElasticSearch的产品视图计数索引和客户顶部搜索查询...
  5. .net core 调用c dll_C++ 调用C封装DLL库的两种方式
  6. SQL中的函数 •Aggregate 函数 •Scalar 函数
  7. 嵌入式开发笔记(二)嵌入式系统启动过程 (S5pv210)
  8. 状态转移表+State模式
  9. VuePress 1.0.0 发布,Vue 轻量级静态网站生成器
  10. Marlin 溫度 sensor 校正
  11. CImage对象使用罗伯特算子进行边缘检测
  12. 【测试】ESP32连接蓝牙耳机音箱测试
  13. 2022年湖北师范大学招生简章--成人高等教育高起专、专升本学历提升
  14. 观史图馆之《中东列国历代疆域变化 青铜与古典时代》
  15. oracle dba_hist_sql,从dba_hist_sqlstat视图中查找过去时段最占用资源的会话
  16. 复杂网络作业二:第一题——Wikipedia vote网络的基本分析
  17. 下载IEEE期刊Latex模板步骤
  18. 上位机.net大佬博客大全-菜鸟学习上位机C#那些事儿
  19. 数据库系统,数据库,数据库管理系统
  20. loadrunner入门教程(28) --场景运行

热门文章

  1. Gogs + Drone搭建
  2. arm linux下看门狗应用,arm linux watchdog 看门狗
  3. CAN协议标准及相关内容
  4. CCC-MGARCH:常值条件相关系数模型(R+Stata)
  5. MySQL 5.7 PREPARE、EXECUTE、DEALLOCATE语句介绍
  6. minecraft源代码_用PHP修改Minecraft-代码中的建筑物!
  7. JS async 函数
  8. 企业为什么要做品牌推广?品牌推广的价值有哪些?
  9. 牛客网 NC200607 A-解锁专家 斐波那契数列
  10. FastDFS小文件存储原理