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
Contribute
DelftStack is a collective effort contributed by software geeks like you. If you like the article and would like to contribute to DelftStack by writing paid articles, you can check the write for us page.

Related Article - Java Integer

  • Difference Between Long and Int Data Types in Java
  • Integer Division in Java