一 无符号数:
八位无符号数的数值范围是0~255
例如:
255=1111 1111
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0=0000 0000
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
二 有符号数:
八位数字中的最高位为符号位,“1”表示为负数,"0"表示为正数;由于最高位被表示正数或者负数的标志占用,所以,原来的8位只剩下7位来代表符号数的数值,这样一来,存储数值的大小将受到限制。原来8位存储无符号数的数值范围是0~255,而7位存储带符号数的数值范围变成了-128~+127
例如:
+127=0111 1111
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
例如:
-127=1000 0001
1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
三 二进制的补数
-128~+127是如何来的那?
在数字系统中,使用二进制表示负数时,最高位放置的是符号,而数值的大小以二进制的补数形式存放在次高位到最低位。
而负数的二进制补数是这样得到的:
1.把负数的绝对值用二进制表示
2.将每一位取反
3.结果加1
注:2、3步中符号位不变。
例如:-2
1.负数取绝对值用二进制表示为:0000 0010
2.取反:1111 1101
3.加1:1111 1110
所以就变成了我们看到的-2的二进制表示为:-2=1111 1110,而不是-2=0000 0010
即:我们看到的负数的二进制实际上是其补数的表示方式!!!
例如:-126
1.负数取绝对值用二进制表示为:0111 1110
2.取反:1000 0001
3.加1:1000 0010
所以就变成了我们看到的-126的二进制表示为:-126=1000 0010,而不是-126=1111 1110
即:我们看到的负数的二进制实际上是其补数的表示方式!!!