java - 字节数组到 int java 在 Windows 中工作而不是在 linux 中

标签 java arrays windows ubuntu integer

关闭。这个问题需要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/

相关文章:

java - 递归洪水填充 - 检查边界

javascript - 仅显示数组中的最后一项

python - 在 Python 中获取文件关联

Windows 中的 PHP shell_exec 不写入 LPT1

java - http ://pubsubhubbub. appspot.com/subscribe 407 需要身份验证

java - 为什么我的聊天应用程序无法在路由器后面运行?

java - 为主要和特定口味的 android 运行单元测试

.net - 如何在VB.NET中将字符串转换为字符串数组?

JavaScript如何将数组属性提取到另一个数组中?

java - 在 Java Runtime Exec 中使用重定向运算符