ULong 데이터 형식(Visual Basic)

0에서 18,446,744,073,709,551,615(1.84 x 10 ^ 19 초과) 사이의 값 범위에 있는 부호 없는 64비트(8바이트) 정수가 사용됩니다.

설명

UInteger에 비해 너무 큰 이진 데이터 또는 가능한 가장 큰 부호 없는 정수 값을 포함하려면 ULong 데이터 형식을 사용합니다.

ULong의 기본값은 0입니다.

리터럴 할당

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

다음 예제에서는 10진수, 16진수 및 이진 리터럴로 표현된 7,934,076,125와 같은 정수가 ULong 값에 할당됩니다.

Dim ulongValue1 As ULong = 7934076125
Console.WriteLine(ulongValue1)

Dim ulongValue2 As ULong = &H0001D8e864DD
Console.WriteLine(ulongValue2)

Dim ulongValue3 As ULong = &B0001_1101_1000_1110_1000_0110_0100_1101_1101
Console.WriteLine(ulongValue3)
' The example displays the following output:
'          7934076125
'          7934076125
'          7934076125

참고 항목

16진수 리터럴을 나타내려면 접두사 &h 또는 &H를 사용하고, 2진수 리터럴을 나타내려면 접두사 &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진수, 2진수 또는 8진수 사이의 선행 구분 기호로 사용할 수도 있습니다. 예시:

Dim number As ULong = &H_F9AC_0326_1489_D68C

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

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

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

숫자 리터럴에는 다음 예와 같이 ULong 데이터 형식을 나타내기 위해 UL 또는 ul형식 문자도 포함될 수 있습니다.

Dim number = &H_00_00_0A_96_2F_AC_14_D7ul

프로그래밍 팁

  • 음수. ULong은 부호 없는 형식이므로 음수를 나타낼 수 없습니다. ULong 형식으로 평가되는 식에 단항 빼기(-) 연산자를 사용하는 경우 Visual Basic에서는 먼저 식을 Decimal로 변환합니다.

  • CLS 준수. ULong 데이터 형식은 CLS(공용 언어 사양)의 일부가 아니므로 CLS 규격 코드는 이를 사용하는 구성 요소를 사용할 수 없습니다.

  • Interop 고려 사항. .NET Framework용으로 작성되지 않은 구성 요소(예: 자동화 또는 COM 개체)와 인터페이스하는 경우 ulong과 같은 형식은 다른 환경에서 다른 데이터 너비(32비트)를 가질 수 있다는 점에 유의해야 합니다. 이러한 구성 요소에 32비트 인수를 전달하는 경우 관리되는 Visual Basic 코드에서 ULong 대신 UInteger로 선언합니다.

  • Widening. ULong 데이터 형식은 Decimal, SingleDouble로 확장됩니다. 이는 ULong 오류 발생 없이 System.OverflowException을 이러한 형식 으로 변환할 수 있음을 의미합니다.

  • 형식 문자. 리터럴 형식 문자 UL를 리터럴에 추가하면 ULong 데이터 형식이 됩니다. ULong에는 식별자 형식 문자가 없습니다.

  • Framework 형식. .NET Framework에서 해당하는 형식은 System.UInt64 구조체입니다.

참고 항목