原码 反码 补码 移码是软考必考的项目,所以需要对其概念、计算方式和取值范围进行总结。


零、使用场景

原码 反码 补码 移码都是计算机中表示数据的方式,各有所长,对于我们来说,都需要加以学习。

软考中最常见的就是一个字节的码位,即 8 个 0/1 字符,接下来分别加以介绍。


一、原码

原码的第一位是符号位,正数为 0,负数为 1;后面七位是数值位,是二进制

比如数值 +0,用原码表示就是 00000000

比如数值 +6,用原码表示就是 00000110

比如数值 -7,用原码表示就是 10000111

原码的求解很简单,只要把十进制的数字转为二进制,改一下最前面的符号位即可。

但原码在做加减运算的时候,会有关于 0 这个数值的 BUG

比如计算 +7 + (-7),如下所示。

 00000111
+10000111
---------10001110

计算得到的 10001110 (-14)不是正确的结果,所以就需要其他的码值去做计算。


二、反码

学习了原码之后,反码的求解就简单多了。

正数的反码就等于原码;负数的反码就是在原码的基础上,对非符号位取反即可

比如 +18 的原码是:00010010

那么 +18 的反码就是: 00010010

比如 - 17 的原码是: 10010001

那么 - 17 的反码就是: 11101110

同样我们对 +17 + (-17)进行加法运算。

 00010001
+11101110
---------11111111

显然也是不对的,所以我们接下来要看补码。


三、补码

正数的补码就等于原码,负数的补码是在反码的基础上加上 1

比如 +18 的原码是:00010010,+18 的反码是: 00010010,+18 的补码也是 00010010
比如 -18 的原码是: 10010010,-18 的反码是: 11101101,-18 的补码是 11101110

同样我们对 +18 + (-18)进行加法运算。

 00010010
+11101110
---------00000000

用补码可以进行正常的加法运算,结果是正确的。


四、移码

移码不管是正负数,在补码的基础上,对符号位取反即可

比如 +18 的原码是:00010010,+18 的反码是: 00010010,+18 的补码是 00010010,+18 的补码是 10010010
比如 -18 的原码是: 10010010,-18 的反码是: 11101101,-18 的补码是 11101110,-18 的补码是 01101110

那么问题来了,移码有什么用呢?

据说是为了提现正数比负数大的效果。


五、总结

码制 求解方法 取值范围
原码 首位符号位,正数 0 负数 1,后面七位是二进制数值 - 127 <= N <= 127
反码 正数同原码,负数符号位不变,其余位取反 - 127 <= N <= 127
补码 正数同原码,负数在反码基础上加 1 - 128 <= N <= 127
移码 无论正负数,在补码基础上对符号位取反 - 128 <= N <= 127

【软考学习2】数据表示——原码 反码 补码 移码相关推荐

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

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

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

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

  3. 计算机中的原码,计算机中的原码反码补码移码

    计算机中的原码反码补码移码 原码 数值 X 的原码记为 [X]原,如果机器字长为 n (即采用 n 个二进制位表示数据),则最高位是符号位,0 表示正号,1 表示负号,基余的 n~1 位表示数值的绝对 ...

  4. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  5. 【计算机组成原理】原码 反码 补码 移码的转换

    原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...

  6. 原码 反码 补码 移码

    原码 反码 补码 移码 在计算机内,机器数分为无符号数和有符号数 无符号数表示正数 没有符号位 原码:最高位为符号位 正数为0 负数为1 反码:原码符号位不变 其余位取反 补码:反码+1 移码:反码的 ...

  7. 2.2.1 定点数的表示 原码 反码 补码 移码

    没有未来的未来不是我想要的未来 o(╥﹏╥)o (つД`)(ノへ ̄.)哭了 学习的是定点数的表示,那我们首先来认识一下什么叫定点数与定点数相对应的另一个概念叫做浮点数所谓定点数就是指小数点的位置固定不 ...

  8. 原码 反码 补码 移码(变补)补码与移码的作用

    定义 正数: 原码=反码=补码 负数: 原码:符号位+数值位 (符号位0为正数,1为负数) eq: -7 :10000111 反码:符号位不变,其它位取反:11111000 补码:反码+1:11111 ...

  9. 【计算机组成原理】原码 反码 补码 移码

    目录 一.原码.反码.补码.移码的概念 1. 真值 2. 机器数 1. 原码 2. 反码 3. 补码 4. 移码 二.原码.反码.补码.移码的转换 1. 原码转反码 2. 原码转补码 3. 原码转移码 ...

最新文章

  1. MVC项目下 Telerik Upload 的使用方法
  2. HttpClient 大量连接等待异常的处理
  3. python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
  4. Linux TCP server系列(4)-浅谈listen与大并发TCP连接
  5. github打开前端样式丢失_工具资源系列之 github 上各式各样的小徽章从何而来?...
  6. abaqus编写本构方程vumat_abaqusvumat子程序
  7. My97DatePicker 开始日期不能大于 结束日期
  8. java基础—对象转型
  9. 第二周冲刺第一天个人博客
  10. 跨语言词嵌入无监督词典推断论文笔记Bilingual Lexicon Induction with Semi-supervision in Non-Isometric Embedding Spaces
  11. matlab用于系统框图建模的函数,matlab工具箱与s份imulink.ppt
  12. 酒店结婚播放PPT模板
  13. 微软雅黑繁体_近日,一款免费可商用繁体中文字体开始公测了
  14. 数据分析的法宝---箱形图(Box Plot)
  15. Web:6 大主流 Web 框架优缺点对比之Ember
  16. 孟云飞 :一代通才 自成家数——赵之谦的艺术人生
  17. qt 嵌入web页面_Qt与Web混合开发(一)--简单使用
  18. linux Ubuntu 报错:No command ‘setenv‘ found
  19. python 头条 sign 参数 此篇针对实时列表 请使用73版本的谷歌浏览器
  20. C盘瘦身:QQ文件的清理及Group2文件夹

热门文章

  1. Android studio如何使用DDMS
  2. 解决Linux关闭终端(SSH)后程序自动停止的问题
  3. php imap gmail,php imap gmail接收邮件。
  4. Gradle安装配置
  5. go -- 文件操作(1)读与写
  6. win10系统崩溃蓝屏,开机报错:0xc000000e的解决办法
  7. M1 MacBook可以运行Linux了,Linux之父宣布Linux 5.13公测开始!
  8. OpenTSDB的故障排除
  9. 用PyTorch实现MNIST手写数字识别(非常详细)
  10. Xml数据导入MySQL,SQLite等数据库