首先是整形的大体信息
类型 | 存储需求 | 取值范围 |
---|---|---|
int | 4字节 | -2^31 ~ 2^31-1 |
short | 2字节 | -2^15 ~ 2^15-1 |
long | 8字节 | -2^63 ~ 2^63-1 |
byte | 1字节 | -2^7 ~ 2^7-1 |
就byte来讲,byte使用1字节(即8位来存储),取最高位为符号位,正数为0,负数为1。剩余7位可以用来表示数值。
但要注意0和负数的表示。
0 000 0000
1 000 0000
以上两个二进制存储在数值位上都是0,符号分别为0和1。但并不是两个数都是0。实际上,真正的0的表示是第一种,第二种被定义为-1,是负数的开始。所以我们能看见byte在正数的表示上最大能为127,而负数最小能为-128的原因。至于正数和负数的运算问题,则需要了解反码和补码的知识。
二进制表示 | 十进制表示 |
---|---|
0 111 1111 | 127 |
0 010 1100 | 44 |
0 000 0000 | 0 |
1 000 0000 | -1 |
1 001 0110 | -23 |
1 111 1111 | -128 |