Home >Java >javaTutorial >How to Convert Between Byte Arrays and Integers in Java: A Step-by-Step Guide
Converting Between Byte Arrays and Integers in Java
Storing numerical data as byte arrays provides flexibility and efficient memory usage, especially when dealing with numbers of limited size. In Java, the conversion between byte arrays and integers can be achieved using simple techniques with a clear understanding of the underlying operations.
To convert an integer (short) to a 2-byte array, one can utilize the ByteBuffer.wrap() method. This method takes a byte array as input and wraps it into a buffer. The buffer can then be read and written using the various methods available in the ByteBuffer class.
The following code demonstrates the conversion process:
<code class="java">byte[] arr = { 0x00, 0x01 }; ByteBuffer wrapped = ByteBuffer.wrap(arr); // big-endian by default short num = wrapped.getShort(); // 1</code>
In this example, a 2-byte array {0x0, 0x1} is wrapped into a ByteBuffer named wrapped. The wrapped buffer is then used to retrieve the short value using the getShort() method, resulting in the value 1.
Converting the short integer back into a byte array can be done using the ByteBuffer.allocate() method. This method creates a new ByteBuffer with a specified capacity. The integer value is written to the new buffer using the putShort() method.
<code class="java">ByteBuffer dbuf = ByteBuffer.allocate(2); dbuf.putShort(num); byte[] bytes = dbuf.array(); // { 0, 1 }</code>
In this code snippet, a new ByteBuffer named dbuf is allocated with a capacity of 2 bytes. The short value num is written to dbuf using the putShort() method. Finally, the array() method is used to retrieve the underlying byte array, which is the same as the original input array, {0x0, 0x1}.
The above is the detailed content of How to Convert Between Byte Arrays and Integers in Java: A Step-by-Step Guide. For more information, please follow other related articles on the PHP Chinese website!