我是Java新手(我來自C/C++),我需要讀取存儲在LittleEndian中的無符號4字節數。在Java中閱讀Little Endian unsigned long
我的功能不起作用(我剛剛完成互聯網上搜索,它似乎是正確的......)
public long readlU32() throws IOException {
long dword = 0;
for(int i = 0; i < 4; i++)
dword = (dword << 8) | readU8();
return dword;
}
我看到,這裏的其他問題,它應該工作...怎麼了?
PS:我要讀的值是0x94010000,因此該值應該是404,但程序讀取它爲2483093504(大端值)...
java中的長整型是8個字節。你用8而不是4來嘗試嗎? – Treesrule14
您正在將您讀取的第一個字節移到最左邊。這將使第一個字節最大,所以是的,你實現了大端閱讀。 –