整数的3种表达形式及在内存中的存储

整数在内存中存储的是补码

整数有3种二进制的表示形式:原码、反码和补码。而整数在内存中存储的是补码。接下来就让我来讲一讲原码、反码和补码的的形式分别是什么吧。

对正数而言,其原码、反码和补码都相同。

整型,在32位平台下占4个字节,32个比特位

如正整数5,它的原码、反码、补码都相同,如下:

原码:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

反码:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

补码:0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

而负整数5,它的原码、反码、补码确是这样的:

原码:1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

反码:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0

补码:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1

整数在存储时,最高位是符号位,0表示正数,1表示负数。所以5的原码的最高位是0,-5的原码的最高位是1。而负数的反码就是在原码的基础上,最高位也就是符号位不变,其他的按位取反;补码则是在反码二进制上加1最后强调一点,整数在内存中存储的是补码!!!

猜你喜欢

转载自blog.csdn.net/m0_63039919/article/details/121392605
今日推荐