2014-01-23 13 views
0

我試圖找出WKB Format,並且正在趕上字節順序。如何更正衆所周知的二進制格式的字節順序?

以這個例子,這裏是十六進制表示的一個點幾何:

000000000140000000000000004010000000000000 

分裂成字節:[name of part:number of bytes]

[endiannes:1][type:4][x:8][y:8] 

的問題是,如果我試圖切換的存儲方式,將我:

  • 讀取第一個字節,反轉所有連續的字節,然後將其拆分爲individualidua l零件?

或者

  • 分成獨立的部分,讀取字節序,扭轉單個零件字節?
+3

第二個選項。 – Jon

+0

@Jon謝謝。如果您發佈答案,我會接受。 –

+0

我第二個喬恩的答案 - 字節順序是每個元素最明智的做法。注:Java沒有任何無符號類型:如果你有一個數據類型爲'1字節無符號整數',你需要一個java'short'來存儲所有可能的值;同樣,你需要一個'long'來存儲一個4字節的unsigned int的所有可能的值。 (顯然,32位是32位,因此您可以將uint32_t的位填充到Java int中,但是當您嘗試使用頂級打印或操作真正較大的值時(高位設置),它不會像您那樣工作期望,因爲它會把它們當作消極的價值...... – JVMATL

回答

2

第二個選項。 - Jon

如果你想創建一個具有切換字節順序的WKB,你還必須將第一個字節從00更改爲01或者相反。

相關問題