gpt4 book ai didi

java - 在Java中读取Little Endian unsigned long

转载 作者:行者123 更新时间:2023-12-02 05:43:20 25 4
gpt4 key购买 nike

我是 Java 新手(我来自 C/C++),我需要读取存储在 LittleEndian 中的无符号 4 字节数字。

我的功能不起作用(我刚刚在网上搜索完,似乎是正确的......)

public long readlU32() throws IOException {
long dword = 0;
for(int i = 0; i < 4; i++)
dword = (dword << 8) | readU8();
return dword;
}

我在这里看到了其他问题,它应该有效...出了什么问题?

P.S.:我要读取的值是0x94010000,所以该值应该是404,但是程序将其读取为2483093504(Big Endian值)...

最佳答案

您正在将字节移入,以便“最左边”字节最终仍然是“最左边”。您正在转换 404 的位表示形式作为小端,0x94010000转换成它在大端字节序中所代表的内容,即 2483093504 .

试试这个,这会将读取的每个字节移动到 long从末尾开始的字节。

for(int i = 0; i < 4; i++)
{
dword = dword | (readU8() << (8 * i));
}

关于java - 在Java中读取Little Endian unsigned long,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24330825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com