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

C# Int16.MinValue 필드 완벽 정리 – 개념부터 예제 코드까지

C#의 Int16.MinValue 필드는 16비트 부호 있는 정수 타입인 Int16(short)이 가질 수 있는 최솟값을 나타내는 상수입니다. 이 값은 -32768로 고정되어 있으며, 값의 범위를 검사하거나 형 변환 가능 여부를 확인할 때 유용하게 사용됩니다.

Int16의 값 범위

Int16은 16비트 부호 있는 정수로, 다음과 같은 범위를 가집니다.

  • 최솟값(Int16.MinValue): -32768
  • 최댓값(Int16.MaxValue): 32767

문법(Syntax)

Int16.MinValue 필드의 선언 구문은 다음과 같습니다.

public const short MinValue = -32768;

예제 1 – Int16.MinValue 기본 사용법

다음 예제는 short 변수의 해시 코드, 형식 코드(TypeCode)와 함께 Int16.MinValue와 Int16.MaxValue를 출력하는 방법을 보여줍니다.

using System;
public class Demo {
   public static void Main(){
      short val1 = 23;
      short val2 = 0;
      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 = "+ Int16.MaxValue);
      Console.WriteLine("Minimum Value = "+ Int16.MinValue);
   }
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Value1 = 23
Value2 = 0
HashCode for value1 = 1507351
HashCode for value2 = 0
Are they equal? = False
TypeCode for val1 = Int16
TypeCode for val2 = Int16
Maximum Value = 32767
Minimum Value = -32768

예제 2 – long 값을 short로 안전하게 변환하기

Int16.MinValue는 값의 범위를 검사하는 데에도 활용됩니다. 아래 예제에서는 long 배열의 각 요소가 Int16 표현 범위(-32768 ~ 32767) 내에 있는지 확인한 후, 범위 내에 있으면 Convert.ToInt16()으로 변환하고 그렇지 않으면 변환이 불가능하다는 메시지를 출력합니다.

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

실행 결과

프로그램 실행 시 출력되는 결과는 다음과 같습니다.

Converted: 8998
Not Possible
Not Possible
Converted: -20

정리

Int16.MinValue는 Int16 타입이 표현할 수 있는 최솟값인 -32768을 담고 있는 상수 필드입니다. 값의 유효 범위를 검사하거나, 더 큰 정수 타입(long 등)의 값을 short로 변환하기 전에 오버플로우 여부를 확인하는 용도로 널리 활용됩니다.