How to Create Unsigned Int in Java

Rashmi Patidar Feb 02, 2024
How to Create Unsigned Int in Java

Signed Integers are stored in the database as positive and negative values range, from -1 to -128. Opposite to that, Unsigned Integers hold the large set of positive range values only, no negative values, from 0 to 255. It means that unsigned integers can never store negative values.

In Java, the datatype set does not include any unsigned int explicitly. However, based on the use case, other data types can be treated as unsigned integers. Java provides a long datatype to store larger unsigned values.

The long datatype is a 64-bit size and works on two’s-complement internally. In Java 8 and higher versions, the long datatype can store values ranging from 0 to 2^64-1. It provides more data range as compared to the simple int datatype.

Below is the code block to define the size and the difference between the two data types.

public class Main {
  public static void main(String[] args) {
    System.out.println("Size of int: " + Integer.SIZE + "bits");
    System.out.println("Size of int: " + Long.SIZE + "bits");
    int signedInt = -2345678;
    long unsignedValue = signedInt & 0xffffffffL;
    System.out.println(signedInt);
    System.out.println(unsignedValue);
  }
}

In the code block above, the first two statements print the size of the Integer and Long classes. An integer is a primitive datatype to hold int values.

The size of int prints to 32 bytes, and that of the Long wrapper class prints as 64 bytes. The classes have static and final variables defined that represent the size of the wrapper class.

Next to the print statement, two local or class variables are defined. The variable is of the int and long data types. The value instantiated in an integer is negative, as it holds both negative and positive values.

In a long variable, the signed integer is operated with the Bitwise & operator. It works on two’s complement of a number converted into binary format. So internally, it first converts the negative value into binary form. Between the two binary values, it performs logical & operations over the two values. The operator will eventually convert the negative value into a positive number.

The output of the two program lines above is shown below.

Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Related Article - Java Integer