# Declaring an unsigned int in Java

###### Posted By: Anonymous

Is there a way to declare an unsigned int in Java?

Or the question may be framed as this as well:

What is the Java equivalent of unsigned?

*Just to tell you the context I was looking at Java’s implementation of String.hashcode(). I wanted to test the possibility of collision if the integer were 32 unsigned int.*

## Solution

Java does not have a datatype for unsigned integers.

You can define a `long`

instead of an `int`

if you need to store large values.

You can also use a signed integer as if it were unsigned. The benefit of two’s complement representation is that most operations (such as addition, subtraction, multiplication, and left shift) are identical on a binary level for signed and unsigned integers. A few operations (division, right shift, comparison, and casting), however, are different. As of Java SE 8, new methods in the `Integer`

class allow you to fully use the `int`

data type to perform unsigned arithmetic:

In Java SE 8 and later, you can use the int data type to represent an unsigned 32-bit integer, which has a minimum value of 0 and a maximum value of 2^32-1. Use the Integer class to use int data type as an unsigned integer. Static methods like

`compareUnsigned`

,`divideUnsigned`

etc have been added to the Integer class to support the arithmetic operations for unsigned integers.

Note that `int`

variables are still signed when declared but unsigned arithmetic is now possible by using those methods in the `Integer`

class.

###### Answered By: Anonymous

Disclaimer: This content is shared under creative common license cc-by-sa 3.0. It is generated from StackExchange Website Network.