原码、补码、反码(超详细讲解!!!因为博主之前也是死记,发现忘的很快,所以去了解整理了这篇文章)

原码、补码、反码(超详细讲解!!!因为博主之前也是死记,发现忘的很快,所以去了解整理了这篇文章)

前言:

我相信有很多人(包括博主自己)刚开始学习计算机,接触到原码、反码、补码的时候,都是死记硬背,忘的很快,然后去网上搜教程学习原码、补码、反码,很多也只是教我们如何去计算,并没有教我们为什么要这样算,但是博主的这篇文章会讲述我们为何要那样计算(为啦方便本篇以八位比特位也就是一个字节为标准讲述),我希望我写的这篇博客能够帮助大家更好的理解它,不用再去死记硬背啦~

那么接下来就让我们来理解原码、反码、补码,为什么有这么多码,大家一定要耐心看完喔~

一、原码

原码:十进制数据的二进制表现形式,最左边的一位是符号位,1代表负数,0代表正数。

取值范围:-(27-1)----27-1 (即-127----127)

快速理解:

相信看到我博客的柚柚们,都知道在计算机底层都是以二进制来储存数据的,为了区分正数和负数,就有啦一位符号位的出现(为什么是一位不是两位或者更多呢,是因为没有必要,一位就可以区分正负数啦~,这样不会浪费比特位,可以表示的数据范围更大)。

弊端:负数不能计算

相信细心的柚柚们会发现原码表示0好像有两种方式耶,分别是:

第一种:+0 0000 0000

第二种:-0 1000 0000

疑问:有俩个0有什么影响嘛?有

举例:如果我们计算-3+2,正确答案应该是-1,但是我们用原码去计算,答案确是-5,我们可以发现负数在加正数的时候会往反方向计算,本来正确的过程应该是-3、-2、-1,现在变成了-3、-4、-5,那我们想让他走上正确的方向且能够跟正数区分,就有啦反码。

-3 1000 0011

+2 0000 0010

-5 1000 0101

二、反码

反码:为了解决原码不能计算负数而出现的。

计算规则

正数:因为反码是为负数所设计的所以正数的反码等于原码。

负数:符号位不变(为了跟正数区分),其它位取反,0变1,1变0。例如:-1的反码为1111 1110。

弊端:若跨0计算则会出错

这样看是很抽象的,我给柚柚们举个例子:

-3+5是要等于2的,但是用补码计算结果为1,因为0计算了两次(如图所示),所以我们应该把所有的负数加一,就出现啦补码,此时-0为(1)0000 0000,+0为0000 0000,就很好地解决了0可能计算两次的问题。

-3 1111 1100

+5 0000 0101

+1(1)0000 0001

三、补码

补码:为了解决负数计算时跨0的情况。

取值范围:-27—27-1(即**-128**----127)

疑问:为什么补码的最小值为-128呢?

-127:

补码:1000 0000

反码:1000 0001

通过观察我们可以发现-127的补码还能减一,减为1000 0000即为-128,这就是为什么补码的最小值为-128。

【拓展】:分数怎么转化为为二进制?不会要先除成小数再算叭,其实不用。

我们只需要把分母转化为二的几次方,把分子转化为二进制,然后让分子的小数点左移分母有几次方就移动几位。

例如:

5/16 5是0101,16是24,所以分子的小数点左移4位,则5/16的二进制为0.0101。

总结:

总的来说其实理解原码、反码、补码不难,柚柚们可以自己多去试几个数据,理解他,就会发现它们很简单,以后还会有这种偏向基础的博客,给萌新们参考,有兴趣的柚柚们请给博主三连喔。

相关作品

500多斤的中国大力士!!鑫源骓1200 | 骑士网测评
365bet线上手机投注

500多斤的中国大力士!!鑫源骓1200 | 骑士网测评

📅 08-15 👀 344
地下城与勇士礼盒选哪个
365bet365用网址

地下城与勇士礼盒选哪个

📅 09-14 👀 3975
摩羯座为什么要远离天蝎,摩羯和天蝎相配吗
365bet365用网址

摩羯座为什么要远离天蝎,摩羯和天蝎相配吗

📅 08-24 👀 6864