I need to convert a number into an unsigned byte. The number is always less than or equal to 255, and so it will fit in one byte.
I also need to convert that byte back into that number. How would I do that in Java? I’ve tried several ways and none work. Here’s what I’m trying to do now:
int size = 5; // Convert size int to binary String sizeStr = Integer.toString(size); byte binaryByte = Byte.valueOf(sizeStr);
and now to convert that byte back into the number:
Byte test = new Byte(binaryByte); int msgSize = test.intValue();
Clearly, this does not work. For some reason, it always converts the number into 65
. Any suggestions?
Advertisement
Answer
A byte is always signed in Java. You may get its unsigned value by binary-anding it with 0xFF, though:
int i = 234; byte b = (byte) i; System.out.println(b); // -22 int i2 = b & 0xFF; System.out.println(i2); // 234