#计算机基础–原码、反码、补码
以byte类型:+7和-7为例
10进制 二进制
7 → 0b111
-
原码:
正数:正数的符号位为0,其他位为数值位; 负数:负数的符号位为1,其他位为数值位; 原码:一个数字的绝对值转为二进制后,在数值位空位补0,拼上符号位的整体称为原码。 符号位 数值位 完整原码 +7 0 0000111 00000111 -7 1 0000111 10000111
-
反码:
正数:正数的反码和原码相同。 负数:负数的反码为原码数值位取反,即1→0,0→1;符号位不变。 符号位 数值位 完整反码 +7 0 0000111 00000111 -7 1 1111000 11111000
-
补码:
正数:正数的补码和反码相同。 负数:负数的补码为反码的数值位加1;符号位不变。 符号位 数值位 完整补码 +7 0 0000111 00000111 -7 1 1111001 11111001
总结:正数原码、反码、补码相同;负数的补码可以这样理解:以byte为例,值域(0,-128],所以负数a,(补)a= -128 - a;
注:1、对于补码的概念不理解,对于数学几何中补角的概念应该都很熟悉,参考理解;
2、对于0,在计算机中规定只有+0,没有-0, 0b10000000 → -128