Java
[Java] 오버플로, 언더플로, BigInteger
bornsoon
2024. 9. 24. 17:12
오버플로우(Overflow), 언더플로우(Underflow)가 발생해도 오류가 나지 않고 실행이 되기 때문에
아주 큰 숫자나 아주 작은 음수를 다룰 때 주의 깊게 처리해야한다!!!
---> BigInteger를 사용하는 방법도 있다.
package basic.type;
import java.math.BigInteger; // 큰 숫자를 다루기 위한 확장형 BigInteger
public class TypeEx02 {
public static void main(String[] args) {
int c =1234;
long d = 123456; // 123456L : 자동형식변환
// 오버플로, 언더플로
System.out.println(Long.MAX_VALUE);
// 9223372036854775807 출력
System.out.println(Long.MAX_VALUE + 1);
// 음수값 -9223372036854775808..이 출력됨
// --> 오버플로 발생하지만 오류가 발생되지 않음!!==> 위험!!
System.out.println(Long.MIN_VALUE);
// -9223372036854775808 출력
System.out.println(Long.MIN_VALUE - 1);
// 양수값 9223372036854775807이 출력됨
// --> 언더플로 발생하지만 오류가 발생되지 않음!!==> 위험!!
BigInteger e = new BigInteger("100000000000000000000000000000");
BigInteger f = new BigInteger("1");
System.out.println(e.add(f));
// 100000000000000000000000000001 출력
}
}
728x90