这不是一个问题,而是一个完整性检查!
如果需要将4个字节读入Java作为Big endian中的位掩码,那些字节为:
0x00,0x01,0xB6,0x02。
将其变为int将是:112130
二进制文件为:00000000000000011010011000000010
一系列字节的字节序不会影响位位置,是吗?
由于
贝
答案 0 :(得分:1)
一般来说,如果你正在读取的东西是给你整个字节,那么你不必担心构成这些字节的位的顺序:它只是重要的字节顺序,如你正确的假设。
您可能不得不担心单个位的“字节序”是您实际读取/写入位流而不是整个字节的位置(例如,如果您正在编写在位级别操作的压缩算法) ,你必须决定写入比特的顺序。
答案 1 :(得分:1)
Endian-ness反映了字节的顺序,但不反映这些字节内的位的排序。
假设我想表示(双字节)字0x9001。 如果我只用二进制输出,那就是1001000000000001。
如果我在big-endian机器上转储字节(从较低地址到较高地址),我会看到10010000 00000001
。
如果我在小端机器上转储字节(从较低地址到较高地址),我会看到00000001 10010000
。
答案 2 :(得分:0)
你唯一需要注意的是你如何“将4个字节读入Java” - 这就是字节序很重要的地方,你可以搞砸它(DataInputStream
假设大端)。一旦你读过的值变成了int 112130,就可以了。