这不是一个理智检查的问题!

如果您需要将4个字节读入Java,则是Big Endian中的一个bitmask,而这些字节是:

0x00,0x01,0xb6,0x02。

将其纳入INT将是:112130

二进制将是:000000000000000110100110000010

一系列字节的终点不会影响位置,对吗?

谢谢

托尼

有帮助吗?

解决方案

endian-反映了字节的排序,但不反映这些字节内部的序列。

假设我想表示(两个字节)单词0x9001。如果我只是以二进制输入,那就是1001000000000001。

如果我将字节(从较低地址到更高地址)在大型机器上倾倒,我会看到 10010000 00000001.

如果我将字节(从较低地址到更高地址)在一台小型机器上倾倒,我会看到 00000001 10010000.

其他提示

通常,如果您正在阅读的东西给您整个字节,那么您就不必担心构成这些字节的零件的顺序:正是您正确地假设,这只是字节的顺序。

您可能不得不担心单个位的“ endianness”的时间是您实际读/编写零件流而不是整个字节的地方(例如,如果您编写了在位级别操作的压缩算法,那么您' d必须决定要在哪个命令中写下任何订单)。

您唯一要注意的是,您究竟如何将“ 4个字节读为Java” - 这就是Endianness重要的地方,您可以将其弄乱(DataInputStream 假设Big Endian)。一旦您阅读的价值已成为INT 112130,就可以了。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top