对于0000 0000 ~ 1111 1111,其作为无符号数表示时,只需要直接将二进制转化为十进制即可,范围是0~255。
下面考虑有符号数的情况。
将0000 0000 ~ 1111 1111分段:
- 0000 0000 ~ 0111 1111,符号位是0,表示正数,真值范围为:+0 ~ +127
- 1000 0001 ~ 1111 1111,符号位是1,表示负数,真值范围为:-127 ~ -1(这里记得计算机中数据是以补码形式存储的,1000 0001对应真值是-127,1111 1111 对应真值是-1,不要记错了)
- 单独考虑1000 0000,符号位是1,表示负数,为得到其真值需要进行“取反加一”操作,有 1111 1111 + 1(末位加一),此时产生溢出,变为0000 0000。而0000 0000在第一点中已经用来表示+0了,我们不妨将这个结果看作是-128,这样就可以多表示一个数了~. ~ (有的说法是1000 0000可以看做-0,而+0、-0没有必要作重复,所以将-0用来表示-128)。
综上,八位有符号数取值范围是-128~+127。