다음을 통해 공유


Long 데이터 형식(Visual Basic)

-9,223,372,036,854,775,808에서 9,223,372,036,854,775,807(9.2...E+18) 사이의 값 범위에 있는 부호 있는 64비트(8바이트) 정수를 보유합니다.

설명

너무 커서 Integer 데이터 형식에 맞지 않는 정수를 포함하려면 Long 데이터 형식을 사용합니다.

Long의 기본값은 0입니다.

리터럴 할당

10진수 리터럴, 16진수 리터럴, 8진수 리터럴 또는(Visual Basic 2017부터) 2진 리터럴을 할당하여 Long 변수를 선언하고 초기화할 수 있습니다. 정수 리터럴이 Long 범위를 벗어나는 경우(즉 Int64.MinValue보다 작거나 Int64.MaxValue보다 큰 경우) 컴파일 오류가 발생합니다.

다음 예제에서는 10진수, 16진수 및 이진 리터럴로 표현된 4,294,967,296과 같은 정수가 Long 값에 할당됩니다.

Dim longValue1 As Long = 4294967296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H100000000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

참고 항목

16진수 리터럴을 나타내려면 접두사 &h 또는 &H을(를) 사용하고, 이진수 리터럴을 나타내려면 접두사 &b 또는 &B을(를) 사용하고, 8진수 리터럴을 나타내려면 접두사 &o 또는 &O을(를) 사용합니다. 10진수 리터럴에는 접두사가 없습니다.

Visual Basic 2017부터 다음 예와 같이 밑줄 문자 _을 숫자 구분 기호로 사용하여 가독성을 높일 수도 있습니다.

Dim longValue1 As Long = 4_294_967_296
Console.WriteLine(longValue1)

Dim longValue2 As Long = &H1_0000_0000
Console.WriteLine(longValue2)

Dim longValue3 As Long = &B1_0000_0000_0000_0000_0000_0000_0000_0000
Console.WriteLine(longValue3)
' The example displays the following output:
'          4294967296
'          4294967296
'          4294967296

Visual Basic 15.5부터 밑줄 문자(_)를 접두사와 16진수, 이진수, 8진수 사이의 선행 구분 기호로 사용할 수도 있습니다. 예시:

Dim number As Long = &H_0FAC_0326_1489_D68C

선행 구분 기호로 밑줄 문자를 사용하려면 Visual Basic 프로젝트(*.vbproj) 파일에 다음 요소를 추가해야 합니다.

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

자세한 내용은 Visual Basic 언어 버전 선택을 참조하세요.

숫자 리터럴은 다음 예제와 같이 Long 데이터 형식을 나타내는 L형식 문자를 포함할 수도 있습니다.

Dim number = &H_0FAC_0326_1489_D68CL

프로그래밍 팁

  • Interop 고려 사항. Automation 또는 COM 개체와 같이 .NET Framework용으로 작성되지 않은 구성 요소와 상호 작용하는 경우 다른 환경에서는 Long의 데이터 너비(32비트)가 다르다는 점에 유의해야 합니다. 이러한 구성 요소에 32비트 인수를 전달하는 경우 새 Visual Basic 코드에서 이 인수를 Integer 대신 Long으로 선언하세요.

  • Widening. Long 데이터 형식은 Decimal, Single 또는 Double로 확대 변환됩니다. 이는 Long 오류 발생 없이 System.OverflowException를 이러한 형식 중 하나로 변환할 수 있음을 의미합니다.

  • 형식 문자. 리터럴 형식 문자 L를 리터럴에 추가하면 Long 데이터 형식이 됩니다. 식별자 형식 문자 &를 식별자에 추가하면 Long가 됩니다.

  • 프레임워크 형식. .NET Framework에서 해당하는 형식은 System.Int64 구조체입니다.

참고 항목