无符号与有符号整数
有符号整数和无符号整数的区别在于怎么解释整数的最高位。
无符号整数:其最高位被c编译器解释为数据位;
有符号整数:其最高位被c编译器解释为符号位;
符号位为0 ,则为正;为1,则为负。
对字节数相同的整型数而言,由于有符号整数的数据位比无符号整数的数据位少了1位,而且少的刚好是最高位,因此有符号整数能表示的最大整数的绝对值只有最大无符号整数的一半。
范围:
无符号整数:0-65535
有符号整数:-32768-32767
原码、反码、补码:(举例-1)
原码
|1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1|
反码(符号位不变)
|1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 |
补码(+1)
|1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1|
(假设分配了两个字节的空间)
若为正数:原码,反码,补码相同。。
计算机运用补码可以用于减法的计算 如7-6=7+(-6)。