In this tutorial, you will learn how to convert a long value to an int in Java. We’ll explore explicit casting, potential data loss, and provide examples to demonstrate the conversion process.
Java – Convert long to int
Converting long to int in Java – In Java, converting a long to an int requires explicit casting because long has a larger range than int. This conversion might result in data loss if the long value is larger than the maximum int value.
Explicit Conversion from long to int
To convert a long to an int in Java, you need to use an explicit cast. Be cautious, as casting a large long value into an int can cause data loss by truncating the higher bits.
Example of Explicit Conversion
public class LongToIntExample {
public static void main(String[] args) {
long longVal = 12345L;
int intVal = (int) longVal; // Explicit conversion from long to int
System.out.println("Long value: " + longVal);
System.out.println("Int value after conversion: " + intVal);
}
}
Output
Long value: 12345
Int value after conversion: 12345
In this example, the long value 12345 fits within the range of an int, so no data is lost in the conversion.
Data Loss with Large long Values
If the long value exceeds the range of int (-2,147,483,648 to 2,147,483,647), the conversion will result in data loss. This means only the lower 32 bits are retained, which can lead to unexpected results.
Example Demonstrating Data Loss
public class LongToIntExample {
public static void main(String[] args) {
long longVal = 3000000000L; // A value larger than int range
int intVal = (int) longVal; // Explicit conversion
System.out.println("Long value: " + longVal);
System.out.println("Int value after conversion: " + intVal);
}
}
Output
Long value: 3000000000
Int value after conversion: -1294967296
In this example, the long value 3000000000 is out of the int range. The resulting int value appears as -1294967296, illustrating data loss due to overflow.
Conclusion
Converting a long to an int in Java requires explicit casting. This conversion may lead to data loss if the long value is outside the int range. It’s essential to consider the size of your long values before casting them to int to ensure accurate results.
