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

时间:2009-11-17 10:47:33

标签: java system byte

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

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

如何打印存储在数组中的不同值?

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

感谢大家!

3 个答案:

答案 0 :(得分:61)

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

(漂亮的印刷品)

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

(漂亮的印刷品)

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

答案 1 :(得分:8)

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

答案 2 :(得分: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上)