web-dev-qa-db-fra.com

Comment imprimer des octets en hexadécimal en utilisant System.out.println?

J'ai déclaré un tableau d'octets (j'utilise Java):

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

Comment imprimer les différentes valeurs stockées dans le tableau?

Si j'utilise System.out.println (test [0]), il affichera "10". Je voudrais qu'il imprime 0x0A

Merci à tout le monde!

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

OU (jolie impression)

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

OU (jolie impression)

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));
}

REMARQUE: test [1] = 0xFF; cela ne compile pas, vous ne pouvez pas mettre 255 (FF) dans un octet, Java voudra utiliser un int.

vous pourriez peut-être faire ...

test[1] = (byte) 0xFF;

Je testerais si j'étais près de mon IDE (si j'étais près de mon IDE je ne serais pas sur Stackoverflow)

3
jeff porter