负数的补码
补码规律:除符号位外,数字越大对应负的越小
以32位有符号数为例:
- 全1为 -1 的补码:
1111 1111,1111 1111, 1111 1111,1111 1111 “-1”补码
- 全零(符号位1)为最大负数(2^31)的补码:
1000 0000, 0000 0000, 0000 0000, 0000 0000 “-2147483648”补码
负数与整数构成一个循环
即最小负数 再 减一 等于 最大整数:
int的范围
-2^31 ~~ (2^31)-1
0占一个正数,所以负数比正数多1个
运算原理
转化为补码运算 结果也为补码
应用:输出一个数的二进制补码
正数:除二倒取余
负数:n=n+最大正数+1(即加上(2^31),溢出则要分开加) ;
再除二倒取余