原码
原码就是十进制数字最原始的二进制表示。
在Java中有整数型基本数据类型:byte、short、int、long;浮点型基本数据类型:float、double。
在Java中,对于整数而言,其原码格式是:最高位为符号位,1表示负数,0表示正数,其余位为数字位。以32位int型整数5为例:
5的原码: 00000000 00000000 00000000 00000101
-5的原码:10000000 00000000 00000000 00000101
因此,对于原码来说,绝对值相等的数字只有符号位不同。
反码
正数的反码为其原码;负数的反码为除了最高位的符号位以外,其余数字位取反。同样以32位int型整数5为例:
5的反码: 00000000 00000000 00000000 00000101
-5的反码:11111111 11111111 11111111 11111010
补码
正数的补码为其原码;负数的补码就是先取反,再加1。
同样以32位int型整数5为例:
5的补码: 00000000 00000000 00000000 00000101
-5的补码:11111111 11111111 11111111 11111011