C语言学习之原码、反码、补码

一、原码

原码就是十进制数字的二进制表现形式。例如 int类型的数字,占用4个字节,一个字节又是8位,所以int类型的数字占用32位。

示例:10的原码

00000000 00000000 00000000 00001010

负数原码的最高位表示符号位,1表示为负数

示例:-10的原码

10000000 00000000 00000000 00001010

二、反码

正数的反码与原码一样。
例如上面10反码为:

00000000 00000000 00000000 00001010

负数的反码为最高位符号位保持不变,其余为取反。
例如上面的-10的反码为:

11111111 11111111 11111111 11110101

三、补码

正数的补码同原码、反码相同,保持不变。
例如上面10反码为:

00000000 00000000 00000000 00001010

负数的补码是其反码加1,变成补码。
例如上面的-10的补码为:

11111111 11111111 11111111 11110110

四、总结

对于正数而言,原码、反码、补码三码相同。

对于负数而言,最高位表示符号位,反码为符号位保持不变,其余位取反。补码为反码加上1。

计算机存储时,则是以补码的形式进行存储数字。

猜你喜欢

转载自blog.csdn.net/qq_46292926/article/details/128121884