二进制原码,反码,补码
程序员文章站
2022-07-15 09:42:26
...
正数的原码,反码,补码都相同。
//正1的原码,反码,补码都相同
[+1] = [00000001]原 = [00000001]反 = [00000001]补
//负数的原码:最高位是符号位
//负数的反码:符号位不变,其余各个位取反
//负数的补码:在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[-1] = [10000001]原 = [11111110]反 = [11111111]补
在计算机系统中,数值一律用补码来表示和存储。
使用补码,可以将符号位和数值域统一处理;
同时,加法和减法也可以统一处理。
计算机中的二进制数最高位是符号位例如:10000011= -3,最高位1代表的是负值。
A-B=A - (B的补码)=C
0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1
1.原码
就是符号位加上真值的绝对值。
就是
1位符号位 + 7位真值位 = 8位
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111]
即:[-127 , 127]
上一篇: B - Parity
下一篇: Parity game