我必须从字节数组中读取并转换为java中的int。在windows中,它可以完美地工作,我可以看到逻辑序列号(它们是逻辑顺序的数字:1,2,3…)。然而,在Linux中情况并非如此,转换给出偶数负数,而它们都是正数。操作系统是否会干扰转换?
我让我用来从字节数组读取到int的转换代码:
public static int byteArrayToInt(byte[] b)
{
return (int)((b[3] & 0xFF) | (b[2] & 0xFF) << 8 | (b[1] & 0xFF) << 16 | (b[0] & 0xFF) << 24);
}
似乎您的代码期望字节数组以大端字节顺序表示32位整数。我假设由于某种原因,如果您在linux下运行代码,字节顺序是小端序的。我们需要知道字节数组是从哪里来的,才能猜测其中的原因。