long(C# 참조)
long 키워드는 다음 표에 표시된 크기와 범위에 따라 값을 저장하는 정수 계열 형식을 나타냅니다.
형식 |
범위 |
크기 |
.NET Framework 형식 |
---|---|---|---|
long |
–9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
부호 있는 64비트 정수 |
리터럴
다음 예제에서와 같이 long 변수를 선언하고 초기화할 수 있습니다.
long long1 = 4294967296;
정수 리터럴에 접미사가 없는 경우 해당 정수 리터럴의 형식은 그 값이 표현될 수 있는 형식인 int, uint, long, ulong 중에서 첫째 형식입니다.앞의 예제에서 정수 리터럴의 형식은 uint의 범위를 초과하기 때문에 long입니다. 정수 계열 형식의 저장 크기에 대해서는 정수 계열 형식 표(C# 참조)를 참조하십시오.
또한 다음과 같이 long 형식에 L 접미사를 사용할 수도 있습니다.
long long2 = 4294967296L;
L 접미사를 사용할 경우 리터럴 정수의 형식은 크기에 따라 long 또는 ulong으로 결정됩니다.위의 경우 리터럴 정수는 ulong 범위보다 작기 때문에 long 형식입니다.
접미사는 오버로드된 메서드를 호출할 때 주로 사용됩니다.예를 들어 다음과 같이 long 및 int 매개 변수를 사용하는 오버로드된 메서드가 있습니다.
public static void SampleMethod(int i) {}
public static void SampleMethod(long l) {}
이 경우, L 접미사를 사용하면 올바른 형식이 호출됩니다. 예를 들면 다음과 같습니다.
SampleMethod(5); // Calling the method with the int parameter
SampleMethod(5L); // Calling the method with the long parameter
같은 식에서 다른 숫자 정수 계열 형식과 함께 long 형식을 사용할 수 있습니다. 이런 경우 식은 long으로 계산되고 부울 식 또는 관계식의 경우에는 bool로 계산됩니다.예를 들어 다음 식은 long으로 계산됩니다.
898L + 88
[!참고]
소문자 "l"도 접미사로 사용할 수 있습니다.그러나 이 접미사는 숫자 "1"과 쉽게 혼동될 수 있기 때문에 컴파일러 경고가 발생합니다. 혼동을 피하려면 "L"을 사용하는 것이 좋습니다.
부동 소수점 형식 및 정수 계열 형식이 함께 사용되는 산술식에 대한 내용은 double 및 float을 참조하십시오.
변환
long에서 float, double 또는 decimal로의 암시적 변환이 미리 정의되어 있습니다.그 외의 다른 경우에는 캐스트를 사용해야 합니다.예를 들어, 명시적 캐스트를 사용하지 않으면 다음 문에서 컴파일 오류가 발생합니다.
int x = 8L; // Error: no implicit conversion from long to int
int x = (int)8L; // OK: explicit conversion to int
sbyte, byte, short, ushort, int, uint 또는 char에서 long으로의 암시적 변환이 미리 정의되어 있습니다.
또한 부동 소수점 형식에서 long으로의 암시적 변환은 없습니다.예를 들어, 다음 문에서 명시적 캐스트를 사용하지 않으면 컴파일러 오류가 발생합니다.
long x = 3.0; // Error: no implicit conversion from double
long y = (long)3.0; // OK: explicit conversion
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.