C#의 Int64 구조체는 64비트 부호 있는(signed) 정수를 나타내는 불변(immutable) 값 타입입니다. 표현할 수 있는 값의 범위는 -9,223,372,036,854,775,808부터 +9,223,372,036,854,775,807까지로, 일반적인 int 형식보다 훨씬 큰 숫자를 다룰 수 있습니다.
Int64의 주요 필드
| 필드 | 설명 |
|---|---|
| MaxValue | Int64가 가질 수 있는 최댓값을 나타냅니다. 이 필드는 상수입니다. |
| MinValue | Int64가 가질 수 있는 최솟값을 나타냅니다. 이 필드는 상수입니다. |
Int64의 주요 메서드
| 메서드 | 설명 |
|---|---|
| CompareTo(Int64) | 현재 인스턴스와 지정된 64비트 부호 있는 정수를 비교하고 상대적인 값을 나타내는 결과를 반환합니다. |
| CompareTo(Object) | 현재 인스턴스와 지정된 개체를 비교하고 상대적인 값을 나타내는 결과를 반환합니다. |
| Equals(Int64) | 현재 인스턴스가 지정된 Int64 값과 같은지 여부를 나타내는 값을 반환합니다. |
| Equals(Object) | 현재 인스턴스가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. |
| GetHashCode() | 현재 인스턴스의 해시 코드를 반환합니다. |
| GetTypeCode() | 값 형식 Int64에 대한 TypeCode를 반환합니다. |
| Parse(String) | 숫자의 문자열 표현을 해당하는 64비트 부호 있는 정수로 변환합니다. |
| Parse(String, IFormatProvider) | 지정된 문화권별 형식으로 된 숫자 문자열을 해당하는 64비트 부호 있는 정수로 변환합니다. |
이제 주요 메서드들의 실제 사용 예제를 살펴보겠습니다.
Int64.CompareTo() 메서드
C#의 Int64.CompareTo() 메서드는 현재 인스턴스를 지정된 개체 또는 Int64 값과 비교한 후, 두 값의 상대적 크기를 나타내는 정수를 반환합니다.
구문
public int CompareTo (long val); public int CompareTo (object val);
첫 번째 구문에서 매개변수 val은 비교할 정수이고, 두 번째 구문에서 val은 비교할 개체입니다. 반환값은 현재 인스턴스가 비교 대상보다 작으면 음수, 같으면 0, 크면 양수입니다.
예제 1
using System;
public class Demo {
public static void Main(){
long val1 = 20;
long val2 = 18;
Console.WriteLine("Value 1 = "+val1);
Console.WriteLine("Value 2 = "+val2);
Console.WriteLine("Return value (comparison) = "+val1.CompareTo(val2));
}
}출력 결과
Value 1 = 20 Value 2 = 18 Return value (comparison) = 1
val1(20)이 val2(18)보다 크므로 비교 결과로 1이 반환됩니다.
예제 2
using System;
public class Demo {
public static void Main(){
long val1 = 20;
object val2 = (long)20;
Console.WriteLine("Value 1 = "+val1);
Console.WriteLine("Value 2 = "+val2);
Console.WriteLine("Return value (comparison) = "+val1.CompareTo(val2));
}
}출력 결과
Value 1 = 20 Value 2 = 20 Return value (comparison) = 0
두 값이 동일하므로 0이 반환됩니다.
Int64.Equals() 메서드
C#의 Int64.Equals() 메서드는 현재 인스턴스가 지정된 개체 또는 Int64 값과 같은지 여부를 나타내는 불리언(Boolean) 값을 반환합니다.
구문
public bool Equals (long ob); public override bool Equals (object ob);
첫 번째 구문에서 매개변수 ob는 현재 인스턴스와 비교할 Int64 값이며, 두 번째 구문에서 ob는 비교할 개체입니다.
예제 1
using System;
public class Demo {
public static void Main(){
long val1 = 150;
long val2 = 240;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("Are they equal? = "+val1.Equals(val2));
}
}출력 결과
Value1 = 150 Value2 = 240 Are they equal? = False
두 값이 서로 다르므로 False가 출력됩니다.
예제 2
using System;
public class Demo {
public static void Main(){
long val1 = 8768768768;
long val2 = 8768768768;
Console.WriteLine("Value1 = "+val1);
Console.WriteLine("Value2 = "+val2);
Console.WriteLine("Are they equal? = "+val1.Equals(val2));
}
}출력 결과
Value1 = 8768768768 Value2 = 8768768768 Are they equal? = True
int 범위를 초과하는 큰 숫자도 Int64에서는 문제없이 처리되며, 두 값이 같으므로 True가 출력됩니다.
마무리
Int64 구조체는 long 형식에 해당하며, 매우 큰 정수 값을 안전하게 다루어야 할 때 유용합니다. CompareTo()로 값의 크기를 비교하고, Equals()로 동일성을 검사하고, Parse()로 문자열을 변환하는 등 다양한 메서드를 활용하면 숫자 데이터 처리 작업을 더욱 효율적으로 수행할 수 있습니다.