我的问题是关于Java int数据结构。
如果我有一个 4 字节的缓冲区
byte[] buffer = {(byte)A, (byte)B, (byte)C, (byte)D};
如何使用此数组和逻辑运算符构建正整数和负整数值( &
、 |
、 <<
、 >>
)?
假设 int = 4 且 int = 130;以及-4和-130。
最佳答案
要从四个 8 位值构造 32 位值,您需要知道 Endianness
如果我们假设高位存储在第一个字节中,那么你可以这样做:
int v = 0;
for (int i=0; i<4; i++)
v = (v<<8) | (buffer[i]&0xff);
如果高位存储在最后一个字节,则需要反向循环
int v = 0;
for (int i=3; i>=0; i--)
v = (v<<8) | (buffer[i]&0xff);
关于java - 如何在Java中用字节构建int值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60344462/