【软考学习2】数据表示——原码 反码 补码 移码
原码 反码 补码 移码是软考必考的项目,所以需要对其概念、计算方式和取值范围进行总结。
零、使用场景
原码 反码 补码 移码都是计算机中表示数据的方式,各有所长,对于我们来说,都需要加以学习。
软考中最常见的就是一个字节的码位,即 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】数据表示——原码 反码 补码 移码相关推荐
- 原码, 反码, 补码, 移码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- [例题详解]真值 机器数概念 | 原码 反码 补码 移码 概念及加减计算
目录 真值和机器数 原码 反码 补码 移码 对比记忆 | 原 反 补 移码 加减法 | 原码 补码 结语 | 大学生学习复习资料 真值和机器数 真值:-5.+10 机器数(带符号数)(= 符号位 [0 ...
- 计算机中的原码,计算机中的原码反码补码移码
计算机中的原码反码补码移码 原码 数值 X 的原码记为 [X]原,如果机器字长为 n (即采用 n 个二进制位表示数据),则最高位是符号位,0 表示正号,1 表示负号,基余的 n~1 位表示数值的绝对 ...
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...
- 【计算机组成原理】原码 反码 补码 移码的转换
原码 反码 补码 移码的转换 这三种机器码都是二进制数据的表现形式,可以表现正数和负数. 原码是可以直接表现出数据的正负和大小. 正数的原码.反码和补码都是相同的. 反码用于原码和补码的转换的功能. ...
- 原码 反码 补码 移码
原码 反码 补码 移码 在计算机内,机器数分为无符号数和有符号数 无符号数表示正数 没有符号位 原码:最高位为符号位 正数为0 负数为1 反码:原码符号位不变 其余位取反 补码:反码+1 移码:反码的 ...
- 2.2.1 定点数的表示 原码 反码 补码 移码
没有未来的未来不是我想要的未来 o(╥﹏╥)o (つД`)(ノへ ̄.)哭了 学习的是定点数的表示,那我们首先来认识一下什么叫定点数与定点数相对应的另一个概念叫做浮点数所谓定点数就是指小数点的位置固定不 ...
- 原码 反码 补码 移码(变补)补码与移码的作用
定义 正数: 原码=反码=补码 负数: 原码:符号位+数值位 (符号位0为正数,1为负数) eq: -7 :10000111 反码:符号位不变,其它位取反:11111000 补码:反码+1:11111 ...
- 【计算机组成原理】原码 反码 补码 移码
目录 一.原码.反码.补码.移码的概念 1. 真值 2. 机器数 1. 原码 2. 反码 3. 补码 4. 移码 二.原码.反码.补码.移码的转换 1. 原码转反码 2. 原码转补码 3. 原码转移码 ...
最新文章
- MVC项目下 Telerik Upload 的使用方法
- HttpClient 大量连接等待异常的处理
- python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
- Linux TCP server系列(4)-浅谈listen与大并发TCP连接
- github打开前端样式丢失_工具资源系列之 github 上各式各样的小徽章从何而来?...
- abaqus编写本构方程vumat_abaqusvumat子程序
- My97DatePicker 开始日期不能大于 结束日期
- java基础—对象转型
- 第二周冲刺第一天个人博客
- 跨语言词嵌入无监督词典推断论文笔记Bilingual Lexicon Induction with Semi-supervision in Non-Isometric Embedding Spaces
- matlab用于系统框图建模的函数,matlab工具箱与s份imulink.ppt
- 酒店结婚播放PPT模板
- 微软雅黑繁体_近日,一款免费可商用繁体中文字体开始公测了
- 数据分析的法宝---箱形图(Box Plot)
- Web:6 大主流 Web 框架优缺点对比之Ember
- 孟云飞 :一代通才 自成家数——赵之谦的艺术人生
- qt 嵌入web页面_Qt与Web混合开发(一)--简单使用
- linux Ubuntu 报错:No command ‘setenv‘ found
- python 头条 sign 参数 此篇针对实时列表 请使用73版本的谷歌浏览器
- C盘瘦身:QQ文件的清理及Group2文件夹