web-dev-qa-db-ja.com

System.out.printlnを使用して16進数でバイトを印刷する方法は?

バイト配列を宣言しました(Javaを使用しています):

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

配列に保存されているさまざまな値を印刷するにはどうすればよいですか?

System.out.println(test [0])を使用すると、「10」が出力されます。 0x0Aを印刷したい

皆に感謝します!

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

または(pretty print)

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

または(pretty print)

System.out.println(String.format("0x%02X", test[0]));
62
bruno conde
for (int j=0; j<test.length; j++) {
   System.out.format("%02X ", test[j]);
}
System.out.println();
8
Carl Smotricz
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)を1バイトに入れることはできません。Javaはintを使用します。

あなたができるかもしれません...

test[1] = (byte) 0xFF;

IDEに近いかどうかをテストします(IDE Stackoverflowにならない場合)

3
jeff porter