Java Program to Convert byte[] to int and int to byte[]
In this section, we will show you how to convert byte[] to int and int to byte[] using ByteBuffer.
int to byte[]
int num = 1;
// int need 4 bytes, default ByteOrder.BIG_ENDIAN
byte[] result = ByteBuffer.allocate(4).putInt(num).array();
byte[] to int
byte[] bytes = new byte[] {0, 00, 00, 01};
int num = ByteBuffer.wrap(bytes).getInt();
1. int to byte[]
This Java example converts an int
into a byte array and prints it in hex format.
public class Main {
public static void main(String[] args) {
int num = 1;
byte[] result = convertIntToByteArray(num);
System.out.println("Input : "
+ num);
System.out.println("Byte Array (Hex) : "
+ convertBytesToHex(result));
}
// method 1, int need 4 bytes,
// default ByteOrder.BIG_ENDIAN
public static byte[] convertIntToByteArray(int value) {
return ByteBuffer.allocate(4)
.putInt(value).array();
}
// method 2, bitwise right shift
public static byte[] convertIntToByteArray2(int value) {
return new byte[] {
(byte)(value >> 24),
(byte)(value >> 16),
(byte)(value >> 8),
(byte)value };
}
public static String convertBytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte temp : bytes) {
result.append(String.format("%02x", temp));
}
return result.toString();
}
}
Console Output:
Input : 1
Byte Array (Hex) : 00000001
2. byte[] to int
import java.nio.ByteBuffer;
public class Main {
public static void main(String[] args) {
// byte = -128 to 127
byte[] byteArray = new byte[] {00, 00, 00, 01};
int result = convertByteArrayToInt2(byteArray);
System.out.println("Byte Array (Hex) : "
+ convertBytesToHex(byteArray));
System.out.println("Result : "
+ result);
}
// method 1
public static int convertByteArrayToInt(byte[] bytes) {
return ByteBuffer.wrap(bytes).getInt();
}
// method 2, bitwise again, 0xff for sign extension
public static int convertByteArrayToInt2(byte[] bytes) {
return ((bytes[0] & 0xFF) << 24) |
((bytes[1] & 0xFF) << 16) |
((bytes[2] & 0xFF) << 8) |
((bytes[3] & 0xFF) << 0);
}
public static String convertBytesToHex(byte[] bytes) {
StringBuilder result = new StringBuilder();
for (byte temp : bytes) {
result.append(String.format("%02x", temp));
}
return result.toString();
}
}
Console Output:
Byte Array (Hex) : 00000001
Result : 1
More...