基本类型:
byte:1字节,8位,有符号,包装类Byte
short:2字节,16位,有符号,包装类Short
int:4字节,32位,有符号,包装类Integer
long:8字节,64位,有符号,包装类Long
float:4字节,32位,单精度,包装类Float
单精度是这样的格式,1位符号,8位指数,23位小数:
double:8字节,64位,双精度,包装类Double
双精度是1位符号,11位指数,52位小数:
boolean:1位,包装类Boolean
char:2字节,16位,包装类Character,char类型是一个单一的 16 位 Unicode 字符,最小值是 \u0000(即为 0),最大值是 \uffff(即为 65535),char 数据类型可以储存任何字符
二进制:
原码:第一位为符号位,0负,1正。
2的原码: 00000000 00000000 00000000 00000010
-2的原码:10000000 00000000 00000000 00000010
反码:正数的反码与原码相同,负数的反码在原基础上,符号位不变,其余的按位取反。
2的反码: 00000000 00000000 00000000 00000010
-2的反码:11111111 11111111 11111111 11111101
补码:(所有运算都使用补码):正数的补码与原码相同,负数的补码是反码+1。
2的补码: 00000000 00000000 00000000 00000010
-2的补码:11111111 11111111 11111111 11111110
位运算:
<<:带符号左移,右边边补0
>>:带符号右移,正数右移高位补0,负数右移高位补1,负数使用补码运算,最终结果求回原码
<<<:无符号左移,右边补0,负数使用补码运算,结果不求回原码
>>>:无符号右移,无论正数还是负数,高位补0,结果都是正数,负数使用补码运算,结果不求回原码