1.八大基本类型对应的字节以及字节占比
数据类型 | byte | short | int | long | float | double | char | boolean |
字节占比 | 1B | 2B | 4B | 8B | 4B | 8B | 2B | 1B |
2.类型转换
字节占比大的数据类型在转换成字节占比小的数据类型时,需要进行强制类型转换
public class byteToInt {
public static void main(String[] args) {
int i = 150;
byte b = (byte) i;
System.out.println(b);
}
}
这个问题就与计算机底层的存储原理有关了.计算机存储数据在内存中是以补码的形式进行存储的.
150的原码: 10010110
反码: 10010110
补码: 10010110 (由于最高位是1,计算机以为该数为一个负数).
故在对该数进行读取时:
反码: 11101001
原码: 11101010 -> -(2 + 8 + 32 + 64) = -106
正数的原码,反码,补码相同. 而负数的补码为原码按位取反,末位加1.