原码、反码及补码的简单理解

简单介绍

在计算机中,表达数值有两个基本特点:
1.计算机内部只能使用0和1来表达数值。
2.计算机用固定位数的二进制表达数值。
实际上,0和1的表示在符号层上其实代表的的是两点之间是否存在电压。“1”表示两点之间存在电压,“0”表示两点之间不存在电压。则,我们称要么为“1”、要么为“0”的符号单位为一个比特(bit)。当我们需要表示更多的数值状态时,我们可以将多条线路合并使用,比如8个bit宽度(即8条线路),这样就可以表示256种状态(00000000~11111111)。

原码

1.定义(百度)

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

2.表达方式

在这里插入图片描述

如:[4] = [0000 0100]
加2^(n-1)是加符号位

3.注意点

原码可以很直观的看出数据(起码读数符合人类日常习惯)。但是也有一个很不好的地方。
[4] = [0000 0100]
[-4] = [1000 0100]
那么神奇的就来了
[4] + [-4] = [1000 1000] = [-8] 这明显不符合数学运算结果。
如果计算机内使用原码,那数值表达估计已经乱套了。
故:计算机内部根本不存在原码。

反码

1.定义

正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.

2.表达方式

在这里插入图片描述

3.注意点

1.用加法实现减法
5 = 0000 0101(原) = 0000 0101(反)
-4 = 1000 0100(原) = 1111 1011(反)
5-4 = 0000 0001(反) = 0000 0001(原) = 1
你有可能奇怪了,两个相加应该是1111 1111 呀,怎么可能是0000 0001

理由如下:
1、反码的符号位相加后,如果有进位出现,则要把它送回到最低位去相加(循环进位)。
2、反码运算时,其符号位与数值一起参加运算。
3、用反码运算,其运算结果亦为反码。在转换为真值时,若符号位为0,数位不变;若符号位为1,应将结果求反才是其真值。

2.解决相反数相加不为0的情况
1 = 0000 0001(原) = 0000 0001(反)
-1 = 1000 0001(原) = 1111 1110(反)
1-1 = 1111 1111(反) = 1000 0000(原) = -0
3.前面的运算结果又发现了问题:-0,我们现实生活中也没有-0这个概念呀,所以,又引出了补码。

补码

1.引入模的概念

“模”是指一个计量系统的计数范围,如过去计量粮食用的斗、时钟等。计算机也可以看成一个计量机器,因为计算机的字长是定长的,即存储和处理的位数是有限的,因此它也有一个计量范围,即都存在一个“模”。如:时钟的计量范围是0~11,模=12。表示n位的计算机计量范围是 0-- 2^n -1,模 = 2 ^ n .“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算 。

以时钟为例:
(-3) = 0 - 3 = 12 -3 = 9
8 - 3 = 8 + 9 = 12 + 5 = 0 + 5 = 5
这就实现了将减法变为加法的操作。

拓展:加法是由一个逻辑与运算电路和一个异或运算电路实现,非常便宜。而减法中的借位运算是不能用同样便宜的电路实现的。所以,计算机科学家必须用加法实现减法(不出现借位)

2.定义

在计算机系统中,数值一律用补码来表示和存储。 原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

3.表达方式

在这里插入图片描述

4.注意点

1.补码转换为原码口诀:正数不变,对于负数,除符号位外,按位取反,末尾加1.
2.关于模的一点解释。
1 0000 0000 (模) = (1111 1111 + 0000 0001)
1 0000 0000(模) - 0001 0010(绝对值)
= (1111 1111 - 0001 0010 + 0000 0001)
= 1110 1101(反) + 0000 0001(1)
= (1110 1110)(补)
证得:模-绝对值 = 反码 + 1
计算机内只存在补码

比较

在这里插入图片描述
在补码中,我们注意到1111表示-1,1110表示-2……那么1000呢,顺应规律,他就表示-8.完成了[-8,7]的表达。
则在计算机中,数值的取值范围为[-2 ^ (n-1), 2 ^ (n-1))的解释完成。

猜你喜欢

转载自blog.csdn.net/weixin_45483328/article/details/107764647
今日推荐