Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#의 Int32.MaxValue 필드 완벽 정리: 구문부터 예제까지

C#에서 Int32.MaxValue 필드는 32비트 부호 있는 정수(Int32)가 가질 수 있는 최대값을 나타내는 데 사용됩니다. 그 값은 2,147,483,647이며, 정수 오버플로를 방지하거나 값의 범위를 검사할 때 매우 유용하게 활용됩니다.

구문

Int32.MaxValue 필드의 구문은 다음과 같습니다.

public const int MaxValue = 2147483647;

예제 1

먼저 Int32.MaxValue 필드를 활용하는 기본적인 예제를 살펴보겠습니다. 아래 코드는 두 정수의 값, 해시코드, 동등 여부, TypeCode 그리고 Int32의 최대값을 출력합니다.

using System;
public class Demo {
    public static void Main(){
        int val1 = 23;
        int val2 = 23;
        Console.WriteLine("Value1 = "+val1);
        Console.WriteLine("Value2 = "+val2);
        Console.WriteLine("HashCode for value1 = "+val1.GetHashCode());
        Console.WriteLine("HashCode for value2 = "+val2.GetHashCode());
        Console.WriteLine("Are they equal? = "+(val1.Equals(val2)));
        TypeCode type1 = val1.GetTypeCode();
        TypeCode type2 = val2.GetTypeCode();
        Console.WriteLine("TypeCode for val1 = "+type1);
        Console.WriteLine("TypeCode for val2 = "+type2);
        Console.WriteLine("Maximum Value = "+ Int32.MaxValue);
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Value1 = 23
Value2 = 23
HashCode for value1 = 23
HashCode for value2 = 23
Are they equal? = True
TypeCode for val1 = Int32
TypeCode for val2 = Int32
Maximum Value = 2147483647

예제 2: 범위 검사 후 형 변환하기

다음 예제는 long 배열에 담긴 값들이 Int32 표현 범위 내에 있는지 검사한 뒤, 범위 안에 있으면 int로 변환하는 방법을 보여줍니다. Int32.MinValueInt32.MaxValue를 함께 사용하면 변환 시 발생할 수 있는 오버플로 예외를 사전에 방지할 수 있습니다.

using System;
public class Demo {
    public static void Main(){
        long[]val = {8998, -899898778, 8787867687878, -20};
        int res;
        foreach(long a in val){
            if(a >= Int32.MinValue && a <= Int32.MaxValue){
                res = Convert.ToInt32(a);
                Console.WriteLine("Converted: "+res);
            }
            else{
                Console.WriteLine("Not Possible");
            }
        }
    }
}

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Converted: 8998
Converted: -899898778
Not Possible
Converted: -20

배열의 세 번째 값인 8787867687878은 Int32의 최대값인 2,147,483,647을 초과하기 때문에 "Not Possible"이 출력되며 변환이 수행되지 않습니다. 이처럼 Int32.MaxValue와 Int32.MinValue를 활용한 범위 검사는 안전한 형 변환을 위한 필수적인 패턴입니다.