Подтвердить что ты не робот

Как печатать байты в шестнадцатеричном формате с помощью System.out.println?

Я объявил массив байтов (я использую Java):

byte test[] = new byte[3];
test[0] = 0x0A;
test[1] = 0xFF;
test[2] = 0x01;

Как я могу напечатать разные значения, хранящиеся в массиве?

Если я использую System.out.println(test [0]), он напечатает "10". Я бы хотел, чтобы он печатал 0x0A

Спасибо всем!

4b9b3361

Ответ 1

System.out.println(Integer.toHexString(test[0]));

ИЛИ (довольно печатная версия)

System.out.printf("0x%02X", test[0]);

ИЛИ (довольно печатная версия)

System.out.println(String.format("0x%02X", test[0]));

Ответ 2

for (int j=0; j<test.length; j++) {
   System.out.format("%02X ", test[j]);
}
System.out.println();

Ответ 3

byte test[] = new byte[3];
test[0] = 0x0A;
test[1] = 0xFF;
test[2] = 0x01;

for (byte theByte : test)
{
  System.out.println(Integer.toHexString(theByte));
}

ПРИМЕЧАНИЕ: test [1] = 0xFF; это не скомпилируется, вы не можете вставить 255 (FF) в байт, java захочет использовать int.

вы могли бы сделать...

test[1] = (byte) 0xFF;

Я бы тестировал, был ли я рядом с моей IDE (если бы я был рядом с моей IDE, я бы не был на Stackoverflow)