有符号的二进制表示:
补充:
在计算机中,负数以其正值的补码形式表达
原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。
反码:将二进制数按位取反(0变1,1变0),所得的新二进制数称为原二进制数的反码。
补码:反码加1称为补码。
最左边的看作符号位,为1表示负数,为0表示非负数
(即 有符号的二进制表示较无符号的少了1/2(这里指非负数和负数要各占一半),这就能解释为何
int型取值范围为:-2^31 ~ 2^31-1,而unsigned int(无符号整数型)取值范围为:2^32)
正变负 :各个位数取反再加一
负变正 :各个位数减一再取反(等同于取反再加一)
例:(众所周知,一个整数占四个字节,即四个8比特位)
因此,整数在计算机眼中应该是这样的:
二进制 |
十进制 |
---|---|
00000000 00000000 00000000 00000010 |
2 |
00000000 00000000 00000000 |