您的位置首页生活百科

请问18和-13的补码分别是多少?

请问18和-13的补码分别是多少?

的有关信息介绍如下:

请问18和-13的补码分别是多少?

原码的表示方法是:

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值.。

反码的表示方法是:

正数的反码是其本身;

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

补码的表示方法是:

正数的补码就是其本身;

负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。

补码的思想其实就类似于生活中的时钟

补码的思想,第一次见可能会觉得很绕,但是如果你肯停下来仔细想想,绝对会觉得非常美妙。补码的思想其实就来自于生活,只是我们没注意到而已。时钟,经纬度。如果说现在时针现在停在10点钟,那么什么时候时针会停在八点钟呢?简单,过去隔两个小时的时候,是八点钟。也就是说时间正拨10小时,或是倒拨2小时都是八点钟。

也就是10-2=8,而且 10+10=8(10+10=10+2+8=12+8=8)

这个时候满12说明时针在走第二圈了,又走了8小时,所以时针正好又停在八点钟。

所以12在时钟运算中,称之为模,超过了12就会重新从1开始算了。

也就是说, 10-2和10+10从另一个角度来看是等效的,它都使时针指向了八点钟。

既然是等效的,那在时钟运算中,减去一个数,其实就相当于加上另外一个数(这个数与减数相加正好等于12,也称为同余数)

这就是补码所谓模运算思想的生活例子

在这里,我们再次强调原码,反码,补码的引入是为了解决做减法的问题。在原码,反码表示法中,我们把减法化为加法的思维是减去一个数,等于加上一个数的相反数,结果发现引入了符号位,却因为符号位造成了各种意向不到的问题。

但是从上面的例子中,我们可以看到其实减去一个数,对于数值有限制,有溢出的运算(模运算)来说,其实也相当于加上这个数的同余数。

也就是说,我们不引入负数的概念,就可以把减法当成加法来算。所以接下来我们聊4位二进制数的运算,也不必急于引入符号位。因为补码的思想,把减法当成加法时并不是必须要引入符号位的。