Tag: 无符号整数

Java读取unsigned int,存储并将其写回

我需要从quicktime文件中读取unsigned int,然后将其写回另一个quicktime文件。 目前我将unsigned int读入Long,但在写回来的时候,我从来没有设法用4个字节作为unsigned int写回确切的数字。 长期具有我需要回写的正确值。 (例如3289763894或370500)我甚至无法读取写入小于Integer.MAX_VALUE的数字(例如2997)。 我使用以下方法将值写回 public void writeUInt32(long uint32,DataOutputStream stream) throws IOException { writeUInt16((int) (uint32 & 0xffff0000) >> 16,stream); writeUInt16((int) uint32 & 0x0000ffff,stream); } public void writeUInt16(int uint16,DataOutputStream stream) throws IOException { writeUInt8(uint16 >> 8, stream); writeUInt8(uint16, stream); } public void writeUInt8(int uint8,DataOutputStream stream) throws IOException { stream.write(uint8 & 0xFF); } 任何帮助,将不胜感激。

将32位无符号整数(大端)转换为long和back

我有一个字节[4],其中包含一个32位无符号整数(以大端序),我需要将其转换为long(因为int不能保存无符号数)。 另外,我该如何反过来(即从包含32位无符号整数的long到byte [4])?