Integer min and max values

I am a newbie in programming. I was studying from a Java object programming book and performing the tutorials and examples on the book simultaneously on computer. In the book it says that the maximum and minimum value of integers are;

Integer.MAX_VALUE = 2147483647 Integer.MIN_VALUE = -2147483648 

So OK. there is no problem here but; it says that if we add 1 to the maximum value and subtract 1 from minimum;

class test { public static void main(String[] args) { int min = Integer.MIN_VALUE -1; int max = Integer.MAX_VALUE +1; int a = min - 1; int b = max + 1; System.out.println("min - 1 =" + a); System.out.println("max - 1 =" + b); } } 

thus we find;

min - 1 = 2147483646 max + 1 = -2147483647 

and it says that this result is because that the binary process in memory which is limited with 32 bit. The thing that I couldn't understand. In the piece of code isn't it adding and subtracting 2 respectively from maximum and minimum values?;

 int min = Integer.MIN_VALUE -1; // subtracted 1 here int max = Integer.MAX_VALUE +1; // added 1 here int a = min - 1; // subtracted 1 here int b = max + 1; // added 1 here 
6

1 Answer

Note that a is Integer.MAX_VALUE - 1 and b is Integer.MIN_VALUE + 1. So yes, it is indeed subtracting and adding 1 twice in each case. The book is not wrong, but it's a stupid way of teaching about wrap-around overflow. Just printing Integer.MIN_VALUE - 1 and Integer.MAX_VALUE + 1 would have made the point.

int min = Integer.MIN_VALUE -1; // min is set to Integer.MAX_VALUE by underflow int max = Integer.MAX_VALUE +1; // max is set to Integer.MIN_VALUE by overflow 

From the Java Language Specification, §15.18.2:

If an integer addition overflows, then the result is the low-order bits of the mathematical sum as represented in some sufficiently large two's-complement format.

The JLS is the ultimate authority when it comes to questions like this, but I don't recommend reading it as a way to learn Java. You'd be better off going through the Java Language Tutorial. It's fairly comprehensive and the content is very high quality.

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like