34

I've declared a byte array (I'm using Java):

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

How could I print the different values stored in the array?

If I use System.out.println(test[0]) it will print '10'. I'd like it to print 0x0A

Thanks to everyone!

3 Answers 3

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

OR (pretty print)

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

OR (pretty print)

System.out.println(String.format("0x%02X", test[0]));
Sign up to request clarification or add additional context in comments.

2 Comments

Of all of these, the System.out.printf is probably the best idea.
But the Integer.toHexString will print 10 not 0x0A.
9
for (int j=0; j<test.length; j++) {
   System.out.format("%02X ", test[j]);
}
System.out.println();

Comments

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

NOTE: test[1] = 0xFF; this wont compile, you cant put 255 (FF) into a byte, java will want to use an int.

you might be able to do...

test[1] = (byte) 0xFF;

I'd test if I was near my IDE (if I was near my IDE I wouln't be on Stackoverflow)

1 Comment

You can definitely do byte b = 255 & 0xFF; And then when reading it int calculation = (0xFF &b) + 5; to read back 255

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.