Java Program to Convert Byte Array to Long
Last Updated :
11 Feb, 2022
A Java Byte Array is an array used to store byte data types only. The default value of each element of the byte array is 0.
Given an array of bytes, convert it to a long value.
Example:
Byte Array: 1 2 3 4
Long Value: 16909060
Equivalent Hexadecimal String: 0x1020304
There are numerous approaches for converting a Byte Array to Long, and a few of them are listed below.
Approaches:
- Using shifting operators
- Using BigInteger
Method 1: Using Shifting Operators
When converting a byte array to a long value, the length of the bytes array should be equal to or less than eight since a long value occupies 8 bytes. Otherwise, it will lead to a long-range overflow.
Let's consider a byte array:
byte[] b = {(byte)0x1, (byte)0x2, (byte) 0x3, (byte) 0x4};
it's long value = 0x1020304
A byte data type takes 8 bits.
initially let val = 0
val = (0<<8) + (11111111 & 1) = 1
val = (1<<8) + (11111111 & 010) = 100000010
val = (100000010 << 8) + (11111111 & 011) = 10000001000000011
val = (10000001000000011 << 8) + (11111111 & 011) = 1000000100000001100000100 = 0x1020304
Implementation: Following is the implementation of the foregoing approach –
Java
// Java Program for Converting byte
// array to a long value
class GFG {
// A utility function that returns
// long value from a byte array
static long convertToLong(byte[] bytes)
{
long value = 0l;
// Iterating through for loop
for (byte b : bytes) {
// Shifting previous value 8 bits to right and
// add it with next value
value = (value << 8) + (b & 255);
}
return value;
}
// Driver code
public static void main(String[] args)
{
byte[] byte_array
= new byte[] { (byte)0x1, (byte)0x2, (byte)0x3,
(byte)0x4 };
// Printing the required Byte Array
System.out.print("Byte Array : ");
for (int i = 0; i < byte_array.length; i++) {
System.out.print(byte_array[i] + " ");
}
System.out.println();
// Finding long value through the approach discussed
long ans = convertToLong(byte_array);
// Now compare OUTPUT_VALUE and value and you
// will find both are equal
System.out.println("Long value in hex string: "
+ Long.toHexString(ans));
}
}
OutputByte Array : 1 2 3 4
Long value in hex string: 1020304
Complexity Analysis:
- Time Complexity: O(N), where N is the length of byte_array
- Space Complexity: O(1)
Method 2: Using BigInteger
Even though we can use it to convert between a byte array and a primitive value, using BigInteger is a bit heavy for this kind of purpose. Let's use the BigInteger class to convert a byte array to a long value. The BigInteger class has a longValue() method to convert a byte array to a long value:
long value = new BigInteger(bytes).longValue();
Java
// Java Program to convert byte[]
// to long Using BigInteger
import java.math.BigInteger;
class ByteToLong {
// returns long value from byte[]
static long convertToLong(byte[] bytes)
{
// Using longValue() from BigInteger
return new BigInteger(bytes).longValue();
}
// Driver code
public static void main(String[] args)
{
byte[] byte_array
= new byte[] { (byte)0x1, (byte)0x2, (byte)0x3,
(byte)0x4 };
// Printing the required Byte Array
System.out.print("Byte Array : ");
for (int i = 0; i < byte_array.length; i++) {
System.out.print(byte_array[i] + " ");
}
System.out.println();
// Finding long value through the approach discussed
long ans = convertToLong(byte_array);
// Now you can compare OUTPUT_VALUE and value and you
// will find both are equal
System.out.println("Long value in hex string: "
+ Long.toHexString(ans));
}
}
OutputByte Array : 1 2 3 4
Long value in hex string: 1020304
Similar Reads
Java Program to Convert Byte Array to Object Converting byte array into Object and Object into a byte array process is known as deserializing and serializing. The class object which gets serialized/deserialized must implement the interface Serializable. Serializable is a marker interface that comes under package 'java.io.Serializable'.Byte Arr
2 min read
Java Program to Convert Byte Array to Image A byte array is the array of bytes that is used to store the collection of binary data. For example, the byte array of an image stores the information of every pixel of the image. In the byte array, we can store the content of any file in binary format. We can initialize the byte array with the byte
3 min read
Java Program to Convert File to a Byte Array Here, we will go through the different ways to convert file to byte array in Java. Note: Keep a check that prior doing anything first. Create a file on the system repository to deal with our program\writing a program as we will be accessing the same directory through our programs. Methods: Using rea
3 min read
Java Program to Convert Byte Array to Hex String Byte Array - A Java Byte Array is an array used to store byte data types only. The default value of each element of the byte array is 0. Hex String - A Hex String is a combination of the digits 0-9 and characters A-F, just like how a binary string comprises only 0's and 1's. Eg: "245FC" is a hexadec
5 min read
Java Program to Convert Hex String to Byte Array Hex String - A Hex String is a combination of the digits 0-9 and characters A-F, just like how a binary string comprises only 0's and 1's. Eg: "245FC" is a hexadecimal string. Byte Array - A Java Byte Array is an array used to store byte data types only. The default value of each element of the byte
4 min read
Java Program to Convert int to long Given a number of int datatype in Java, your task is to write a Java program to convert this given int datatype into a long datatype. Example: Input: intnum = 5 Output: longnum = 5 Input: intnum = 56 Output: longnum = 56 Int is a smaller data type than long. Int is a 32-bit integer while long is a 6
2 min read
Java Program to Convert long to int Long is a larger data type than int, we need to explicitly perform typecasting for the conversion. Typecasting is performed through the typecast operator. There are basically three methods to convert long to int: By type-castingUsing toIntExact() methodUsing intValue() method of the Long wrapper cla
3 min read
Java Program to Convert Char to Byte Given a char in Java, the task is to write a Java program that converts this char into Byte. Examples: Input: ch = 'A' Output: 65 Input: ch = 'B' Output 66 In Java, char is a primitive data type and it is used to declare characters. It has the capability to hold 16-bit unsigned Unicode characters. T
3 min read
Java Program to Convert Binary to Octal A Binary (base 2) number is given, and our task is to convert it into an Octal (base 8) number. There are different ways to convert binary to decimal, which we will discuss in this article.Example of Binary to Octal Conversion:Input : 100100Output: 44Input : 1100001Output : 141A Binary Number System
5 min read
Java Program to Convert Octal to Binary Given an Octal number as input, the task is to convert that number into its Binary equivalent number. Example: Input: Octal Number = 513 Output: Binary equivalent value is: 101001011 Explanation : Binary equivalent value of 5: 101 Binary equivalent value of 1: 001 Binary equivalent value of 3: 011Oc
5 min read