关闭。这个问题需要debugging details .它目前不接受答案。
编辑问题以包含 desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem .这将帮助其他人回答问题。
9 个月前关闭。
Improve this question
我必须从字节数组中读取并在 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 下运行代码,字节顺序是 little-endian。
我们需要知道字节数组的来源来猜测原因。
关于java - 字节数组到 int java 在 Windows 中工作而不是在 linux 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69372805/