byte bt = (byte) 254;
System.out.println("bt = "+bt);
/**
* 之所以做这个与运算是为了把高位的数据去掉,准确的说是高位的1,看函数的官方说明,
* 发现当参数为负数时,实际上byte只能保存-128~127之间的十进制数字,-128代表128,依次类推,0代表256
* 就把该参数加上2的32次方,也就新增3个字节的位,并填充1,最后一个字节的情况实际是
* 比如存的是-128,加上1111 1111相当于256-128=128,也就变成了整数128,
* 如果存的是-1,对应的整数应该是255,而256-1=255
* 这也就是为什么只去后八位了
*/
System.out.println(Integer.toHexString(bt&0xff));
- Java中的四种基本数据类型
- int: byte(8bit, -128 ~ 127), short(16bit), int(32bit), long(64bit)
- float: 单精度(32bit float), 双精度(64bit double)
- boolean: true, false
- char: unicode字符 16位
- 对应类类型
- Integer, Float, Double, Boolean, Character, Byte, Short, Long
- 大小端
- 小端法(Little-Endian): 低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端
- 大端法(Big-Endian): 高位字节排放在内存的低地址端即该值的起始位置,低位字节排放在内存的高地址端