如何使用System.out.println以十六进制打印字节?

ded*_*alo 32 java byte system

我已经声明了一个字节数组(我正在使用Java):

byte test[] = new byte[3];
test[0] = 0x0A;
test[1] = 0xFF;
test[2] = 0x01;
Run Code Online (Sandbox Code Playgroud)

我怎么能打印存储在数组中的不同值?

如果我使用System.out.println(test [0]),它将打印'10'.我想要打印0x0A

谢谢大家!

bru*_*nde 62

System.out.println(Integer.toHexString(test[0]));
Run Code Online (Sandbox Code Playgroud)

(漂亮的印刷品)

System.out.printf("0x%02X", test[0]);
Run Code Online (Sandbox Code Playgroud)

(漂亮的印刷品)

System.out.println(String.format("0x%02X", test[0]));
Run Code Online (Sandbox Code Playgroud)

  • 在所有这些中,`System.out.printf`可能是最好的主意. (3认同)
  • 但是`Integer.toHexString`将打印`10`而不是'0x0A`. (2认同)

Car*_*icz 8

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