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

简介: 【软考学习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


相关文章
|
6月前
|
存储 编译器 C语言
【原码、反码、补码】小白看完都呲大牙
【原码、反码、补码】小白看完都呲大牙
184 1
【原码、反码、补码】小白看完都呲大牙
|
1月前
深入解析计算机科学的基础:原码、反码与补码
深入解析计算机科学的基础:原码、反码与补码
|
5月前
|
存储
一分钟了解什么是原码-反码-补码
一分钟了解什么是原码-反码-补码
|
5月前
|
程序员
程序员必知:原码、反码、补码和移码详解
程序员必知:原码、反码、补码和移码详解
99 0
|
6月前
原码反码补码移码的介绍和计算
原码反码补码移码的介绍和计算
144 1
|
11月前
【408计算机组成原理】—原码、反码、补码、移码(六)
【408计算机组成原理】—原码、反码、补码、移码(六)
|
存储
[软考]之原码、反码、补码和移码
[软考]之原码、反码、补码和移码
114 0
|
机器学习/深度学习 存储
进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)
Ⅰ.进制转换详解。Ⅱ.原码、反码、移码,补码区别介绍。(通俗易懂)
370 0
进制及进制转换详解。原码、反码、移码,补码区别介绍。(通俗易懂)
|
存储
数制间的转换,原码、反码、补码
数制间的转换,原码、反码、补码
776 0
数制间的转换,原码、反码、补码
【计算机组成原理】原码 反码 补码 移码
一、原码、反码、补码、移码的概念 1. 真值 2. 机器数 1. 原码 2. 反码 3. 补码 4. 移码 二、原码、反码、补码、移码的转换 1. 原码转反码 2. 原码转补码 3. 原码转移码 三、总结
668 0
【计算机组成原理】原码 反码 补码 移码