【发布时间】:2014-12-02 22:29:53
【问题描述】:
我正在尝试找出 WKB Format 并且正在关注字节序。
以这个例子为例,这是一个以十六进制表示的点几何图形:
000000000140000000000000004010000000000000
分割成字节:[name of part:number of bytes]
[endiannes:1][type:4][x:8][y:8]
问题是,如果我尝试切换字节顺序,我会:
- 读取第一个字节,反转所有连续字节,然后将其拆分为单独的部分?
或者
- 拆分成单独的部分,读取字节顺序,在单独的部分中反转字节?
【问题讨论】:
-
@Jon 谢谢。如果您发布答案,我会接受。
-
我支持 Jon 的回答 - 字节排序是每个元素最明智的做法。注意:Java 没有任何无符号类型:如果您有一个具有“1 字节无符号整数”的数据类型,您需要一个 java
short来存储所有可能的值;同样,您需要long来存储 4 字节无符号整数的所有可能值。 (显然,32 位就是 32 位,因此您可以将 uint32_t 的位填充到 Java int 中,但是当您尝试顶部打印或操作非常大的值(设置了高位)时,它不会像您一样工作期望,因为它会将它们视为负值...
标签: c parsing geospatial endianness