Home
IT Knowledge
Inspiration
Languages
EN

# Java - how to get int max and min value with bitwise operations?

2 points
Created by:
20320

Short solution:

``````int MAX_VALUE = -1 >>> 1;
int MIN_VALUE = -1 << 31;

System.out.println(MAX_VALUE); //  2147483647
System.out.println(MIN_VALUE); // -2147483648``````

Other short solution:

``````int MAX_VALUE = ~0 >>> 1;
int MIN_VALUE = ~MAX_VALUE;

System.out.println(MAX_VALUE); //  2147483647
System.out.println(MIN_VALUE); // -2147483648``````

## 1. Using bit shift operators

``````public class Example1 {

public static void main(String[] args) {

int MAX_VALUE = -1 >>> 1;
int MIN_VALUE = -1 << 31;

System.out.println(MAX_VALUE); //  2147483647
System.out.println(MIN_VALUE); // -2147483648

// 01111111111111111111111111111111

// 10000000000000000000000000000000
}

private static String toBinaryWithLeadingZeros(int MAX_VALUE) {
String binaryString = Integer.toBinaryString(MAX_VALUE);
return String.format("%32s", binaryString).replace(' ', '0');
}
}``````

## 2. Using bit shift and NOT operators

``````public class Example2 {

public static void main(String[] args) {

int MAX_VALUE = ~0 >>> 1;
int MIN_VALUE = ~MAX_VALUE;

System.out.println(MAX_VALUE); //  2147483647
System.out.println(MIN_VALUE); // -2147483648

// 01111111111111111111111111111111

// 10000000000000000000000000000000
}

private static String toBinaryWithLeadingZeros(int MAX_VALUE) {
String binaryString = Integer.toBinaryString(MAX_VALUE);
return String.format("%32s", binaryString).replace(' ', '0');
}
}``````

## 3. Stanrad way of getting Integer MAX and MIN value in java

``````public class Example3 {

public static void main(String[] args) {

System.out.println( Integer.MAX_VALUE ); //  2147483647
System.out.println( Integer.MIN_VALUE ); // -2147483648
}
}``````