原码、反码、补码的表现形式
今天我们来讲一下原码、反码、补码的表示。
原码、反码、补码是怎么表示的呢?
我们在定义时是整型所以在内存中占4个字节(32个bit)
1.无符号数
在无符号数中只有正数,那正数的原码、反码、补码是怎么表示的呢?
正数的原码、反码、补码都是一样的。
如图:
1的原码、反码、补码
00000000000000000000000000000001 1的原码
00000000000000000000000000000001 1的反码
00000000000000000000000000000001 1的补码
2.有符号数
在有符号数中有正数和负数,那怎么来区别它们呢?
在有符号数中用0表示正数,用1表示负数。
如图:
00000000000000000000000000000001 - 1的原码
10000000000000000000000000000001 - -1的原码
在无符号数中我们介绍了正数的原、反、补码的表现形式,在有符号数中是一样的,那就不过多复述了。
那在有符号数中的负数的原码、反码、补码怎么表示呢?
原码:直接将数值按照正负数的形式翻译成⼆进制得到的就是原码
反码:原码的符号位不变,其他位依次取反
补码:在反码的基础上加1
如图:
10000000000000000000000000000001 - -1的原码
11111111111111111111111111111110 - -1的反码
11111111111111111111111111111111 - -1的补码
当然补码也可以得到原码:取反,+1。