2015-12-13 3 views
0

Я использую Wireshark и мне нужно взять два байта (прилагается изображение) и имеют это десятичное значение:Как преобразовать значения byte [] в десятичные?

enter image description here

Моя цель состоит в том, чтобы принять этот byte[], который находится в шестнадцатеричное значение и разобрать его в десятичную ,

Уверен, я знаю, как сделать Значение десятичного, что легко, но я не знаю, как сделать эти два, я должен сделать сумму между ними или есть ли другой способ сделать это?

Я не нашёл ни одного значения, отличного от этого, которое левым значением не является 00.

+0

«* Я не нашел значение, которое отличается, то это, когда левое значение не 00. *» Что вы имеете в виду этим? –

+0

@VinceEmigh Я хотел сказать, что я не нашел значения длины, которое равно 0100 или выше, поэтому я бы нашел решение самостоятельно, поэтому мне нужна помощь, чтобы понять, как разбирать это значение. –

ответ

1

Если это всегда большой конец (сетевой порядок байтов), попробуйте это.

byte[] bytes = {0x00, 0x16}; 
    System.out.println(ByteBuffer.wrap(bytes).getShort()); // => 22 

Если длина байтовый массив 4, используйте getInt() вместо getShort()

+0

'getInt()' threw me this: 'java.nio.BufferUnderflowException()' –

+1

Использовать '' 'getInt()' '' только когда длина байтового массива> = 4. – saka1029

+0

Используйте 'getInt()' только тогда, повторное извлечение 4-байтового значения. –

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