1 byte=8 bit;
00000000~11111111
则8位总共能表示2^8=256个数值;
对于有符号数值,貌似可以这样理解:
+0:00000000
1:00000001
+127:011111111
-0:10000000
-1:10000001
-127:11111111
但是,上述过程不正确
对于正数,其原码=补码=反码
对于负数,反码为原码除符号位外,其他位取反,补码则是反码+1
例:111111111在计算机中指的是补码,而不是所谓的-127的原码,
11111111→11111110→10000001,故1111111为-1
但是1000000呢,在无符号位的二进制中可解释为128,但是按照补码又该如何解释
假设byte占用9个bit位,那么就是
110000000→101111111→110000000,即-128的原码与补码相同,
由此规定-128的补码为10000000,且不具有原码和反码
详见:https://www.jianshu.com/p/47761557bab0