2014-01-23 2 views
0

Я пытаюсь выяснить, WKB Format, и я догоняю континент.Как я могу исправить утверждение в хорошо известном двоичном формате?

Исходя из этого примера, вот геометрия точки представлена ​​в шестнадцатеричном:

000000000140000000000000004010000000000000 

разделенного в байты: [name of part:number of bytes]

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

Вопрос заключается в том, если я пытался переключить порядка байты, буду я :

  • Прочитайте первый байт, отмените все последующие байты, затем разделите его на отдельные л частей?

Или

  • Сплит на отдельные части, прочитать порядком байтов, реверс байтов в отдельных частях?
+3

Второй вариант. – Jon

+0

@ Jon спасибо. Я соглашусь, если вы опубликуете ответ. –

+0

Второй ответ Джона - порядок байтов наиболее разумно сделан за элемент. ПРИМЕЧАНИЕ. В Java нет каких-либо неподписанных типов: если у вас есть тип данных с «1-байтовыми целыми без знака», для хранения всех возможных значений вам понадобится «короткий» java; Аналогично, вам нужно 'long' для хранения всех возможных значений 4-байтового беззнакового int. (очевидно, 32 бита - 32 бита, поэтому вы можете вставлять биты uint32_t в Java int, но когда вы пытаетесь использовать верхний печатать или работать с действительно большими значениями (с высоким набором бит), он не будет работать так, как вы ожидайте, потому что это будет относиться к ним как к отрицательным значениям ... – JVMATL

ответ

2

Второй вариант. - Jon

Если вы хотите сделать WKB с включенной согласованностью, вам также необходимо изменить первый байт с 00 на 01 или, наоборот, конечно.

Смежные вопросы