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

C# Int64 구조체 완벽 정리: 주요 필드와 메서드 활용법

C#의 Int64 구조체는 64비트 부호 있는(signed) 정수를 나타내는 불변(immutable) 값 타입입니다. 표현할 수 있는 값의 범위는 -9,223,372,036,854,775,808부터 +9,223,372,036,854,775,807까지로, 일반적인 int 형식보다 훨씬 큰 숫자를 다룰 수 있습니다.

Int64의 주요 필드

필드설명
MaxValueInt64가 가질 수 있는 최댓값을 나타냅니다. 이 필드는 상수입니다.
MinValueInt64가 가질 수 있는 최솟값을 나타냅니다. 이 필드는 상수입니다.

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()로 문자열을 변환하는 등 다양한 메서드를 활용하면 숫자 데이터 처리 작업을 더욱 효율적으로 수행할 수 있습니다.