从 int 变量中获取两个较低的字节
2022-09-02 23:32:15
我在Java中的变量中有一些数据(范围在0到64000之间)。如何转换为字节这个整数?我只需要两个较低的字节(范围是可以的)。如何提取这个?int
int
我在Java中的变量中有一些数据(范围在0到64000之间)。如何转换为字节这个整数?我只需要两个较低的字节(范围是可以的)。如何提取这个?int
int
您可以通过使用以下命令进行 ANDing 从整数中获取最低字节:0xFF
byte lowByte = (byte)(value & 0xFF);
这之所以有效,是因为在第一个字节上方的任何地方都有零位。0xFF
要获得第二低的字节,您可以在向下移动数字8位中的所有位后重复此技巧:
byte penultimateByte = (byte)((value >> 8) & 0xFF);
您不必执行 AND 操作即可获取较低的字节,只需将其转换为字节并在字节变量中获取较低的字节即可。
尝试遵循两者会给你相同的结果
short value = 257;
System.out.println(value);
byte low = (byte) value;
System.out.println("low: " + low);
byte high = (byte)(value >> 8);
System.out.println("high: " + high);
value = 257;
System.out.println(value);
low = (byte) (value & 0xFF);
System.out.println("low: " + low);
high = (byte) ((value >> 8) & 0xFF);
System.out.println("high: " + high);
或在 Ideone.com 上试用