详解整数(int)的正负号下的原码、反码与补码概念
最编程
2024-07-20 17:15:06
...
最近研究线程池的状态,竟是用二进制来表示状态的。
复习一下
1、正数
原码 是以数值的绝对值大小转换成二进制, 最高位补0,
反码、补码和原码相同。
比如: 正数int i=6,int类型的数占用4字节(32位-Integer.SIZE=32)
原码= 0000 0000 0000 0000 0000 0000 0000 0110,
反码=0000 0000 0000 0000 0000 0000 0000 0110,
补码=0000 0000 0000 0000 0000 0000 0000 0110;
2、负数
原码 是以数值的绝对值大小转换成二进制, 最高位补1 .
反码 是对原码 除 符号位(最高位)外,各位取反(1变0,0变1).
补码 是对原码 除符号位(最高位)外 各位取反,最后一位加1.
比如 负数 int i=-6,
原码=1000 0000 0000 0000 0000 0000 0000 0110,
反码=1111 1111 1111 1111 111