java的数值型有byte,short,int,long。
数值类型 | 可取最小值 | 可取最大值 |
byte | -128 | 127 |
short | -32768 | 32767 |
int | -2147483648 | 2147483647 |
long | -9223372036854774808 | 9223372036854774807 |
为什么负数比正数多一位?
原码:数值的二进制表示。
反码:除符号位外,其他位都取反。
补码:整数的补码是他本身,负数的补码是他的反码+1。
在计算机内,这些数值都是用二进制的补码保存的,我们用byte来演示,00000000~01111111表示0~127,10000000~11111111表示-0~-127。但在我们眼里-0和0是同一个概念,所以计算机就规定了,10000000表示最小值-1。