首页  >  编程教程  >  编程问答  >  为什么0的补码形式只有一种?

为什么0的补码形式只有一种?

首先,我们要了解原码、反码以及补码。

原码可以看做是一个二进制数,第一位表示符号,用“0”表示“+”,用“1”表示“-”,其余位表示数值。

反码可以看做是原码与补码之间的过渡码。正数的反码是其本身原码,负数的反码是在其原码的基础上,符号位不变,其余各位取反。

对于补码而言,正数的补码也是其本身原码,亦是其本身反码;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后再+1,也可以认为是在其反码的基础上,再+1。

总的来说,如果一个数是正数,则符号位为0,且它的原码、反码、补码相同;如果一个数是负数,则符号位为1,反码是其余各位取反,补码是反码+1。

根据上述描述,我们可以分别计算一下+0和-0的原码、反码、补码。(0带符号没有任何意义)(以4位二进制数为例)

真值原码反码补码
+0000000000000
-0100011110000

注意:1111+1=10000,取4位为0000。



本文固定URL:https://www.dotcpp.com/qa/43

编程杂谈
编程基础
知识答疑