在Java中,byte类型的数据是8位带符号的二进制数。8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]
原因:因为如果我们没有强制转换为byte,那么0xAA 表示的就是正常的int类型的数值,而不是8位的byte,计算出来的值肯定是不一样的。
我们可以用以下方法去计算一个byte 的值: byte a = (byte)0b10101010;
我们使用计算机看下:
我们使用计算机看下:
0xAA 表示的是一个字节,而不是两个!因为AA 表示的是8位,所以0xAA 表示一个字节,这点在二进制编码过程中要注意!
使用技巧:
我们可以修改最后两位为AA,然后在粘贴到十六进制里面,查看对应的int值
FFFFFFFFFFFFFFAA
参考:
https://www.cnblogs.com/zl181015/p/9435035.html