Contents
접기
728x90
C#에서 정수형 변수는 특정 범위의 값만 저장할 수 있다.
이 범위를 벗어나면 오버플로우나 언더플로우가 발생한다.
오버플로우
최대값에서 1을 더해 오버플로우가 발생했다.
int maxInt = int.MaxValue; // int의 최대값 (2,147,483,647)
Console.WriteLine($"int의 최대값: {maxInt}");
int overflowResult = maxInt + 1; // 오버플로우 발생
Console.WriteLine($"오버플로우 결과: {overflowResult}"); // 출력: -2,147,483,648 (최소값으로 순환)
// checked 키워드를 사용하여 오버플로우 감지
checked
{
try
{
int willOverflow = int.MaxValue;
willOverflow = willOverflow + 1; // 예외 발생
}
catch (OverflowException e)
{
Console.WriteLine("오버플로우 예외 발생: " + e.Message);
}
}
언더플로우
최소값에서 1을 빼 언더플로우가 발생했다.
int minInt = int.MinValue; // int의 최소값 (-2,147,483,648)
Console.WriteLine($"int의 최소값: {minInt}");
int underflowResult = minInt - 1; // 언더플로우 발생
Console.WriteLine($"언더플로우 결과: {underflowResult}"); // 출력: 2,147,483,647 (최대값으로 순환)
// checked 키워드를 사용하여 언더플로우 감지
checked
{
try
{
int willUnderflow = int.MinValue;
willUnderflow = willUnderflow - 1; // 예외 발생
}
catch (OverflowException e)
{
Console.WriteLine("언더플로우 예외 발생: " + e.Message);
}
}
728x90
'C# > 연산자' 카테고리의 다른 글
[C#] 연산자 우선순위 (0) | 2025.03.19 |
---|---|
[C#] 논리연산자 (0) | 2025.03.19 |
[C#] 관계(비교)연산자 (0) | 2025.03.19 |
[C#] 복합 대입 연산자, 증감 연산자(++,--) (0) | 2025.03.19 |
[C#] 산술연산자 (0) | 2025.03.19 |