A Deep Dive into the Limits of Integers : Understanding Integer Overflow and Underflow in Java🔢⚠️

Light
2 min readJan 10, 2024

--

The int data type has a maximum value of 2147483647 and a minimum value of -2147483648. These limits are defined by the Integer.MAX_VALUE and Integer.MIN_VALUE constants in the Integer class.

When an int variable exceeds its maximum or minimum value, an event known as an “overflow” or “underflow” occurs. This is a common pitfall that can lead to unexpected results and bugs in your program.

Overflow: If you try to increment an int variable that is already at Integer.MAX_VALUE, the value will “wrap around” to Integer.MIN_VALUE. Here’s an example:

int x = Integer.MAX_VALUE; // x is now 2147483647
x++; // increment x
System.out.println(x); // prints -2147483648

In the above example, adding 1 to Integer.MAX_VALUE results in Integer.MIN_VALUE.

Underflow: Similarly, if you try to decrement an int variable that is already at Integer.MIN_VALUE, the value will “wrap around” to Integer.MAX_VALUE. Here’s an example:

int x = Integer.MIN_VALUE; // x is now -2147483648
x--; // decrement x
System.out.println(x); // prints 2147483647

In the above example, subtracting 1 from Integer.MIN_VALUE results in Integer.MAX_VALUE.

This behavior is known as “integer overflow” and “integer underflow”, and it’s a result of how integers are represented in binary using two’s complement notation. It’s important to be aware of these limits when working with int variables in Java to avoid unexpected results.

--

--

Light
Light

Written by Light

Upcoming CEO of "A" company

No responses yet