다음을 통해 공유


UInteger 데이터 형식

0에서 4,294,967,295 사이의 값 범위에 있는 부호 없는 32비트(4바이트) 정수를 보유합니다.

설명

UInteger 데이터 형식은 가장 효율적인 데이터 너비에서 가장 큰 부호 없는 값을 제공합니다.

UInteger의 기본값은 0입니다.

리터럴 할당

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

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

Dim uintValue1 As UInteger = 3000000000ui
Console.WriteLine(uintValue1)

Dim uintValue2 As UInteger = &HB2D05E00ui
Console.WriteLine(uintValue2)

Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
'          3000000000
'          3000000000
'          3000000000

참고 항목

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

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

Dim uintValue1 As UInteger = 3_000_000_000ui
Console.WriteLine(uintValue1)

Dim uintValue2 As UInteger = &HB2D0_5E00ui
Console.WriteLine(uintValue2)

Dim uintValue3 As UInteger = &B1011_0010_1101_0000_0101_1110_0000_0000ui
Console.WriteLine(uintValue3)
' The example displays the following output:
'          3000000000
'          3000000000
'          3000000000

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

Dim number As UInteger = &H_0F8C_0326

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

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

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

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

Dim number = &H_0FAC_14D7ui

프로그래밍 팁

작은 정수 형식(UShort, Short, ByteSByte)은 더 적은 비트를 사용하더라도 로드, 저장 및 가져오는 데 더 많은 시간이 걸리므로 UIntegerInteger 데이터 형식은 32비트 프로세서에서 최적의 성능을 제공합니다.

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

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

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

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

  • 형식 문자. 리터럴 형식 문자 UI을(를) 리터럴에 추가하면 UInteger 데이터 형식이 됩니다. UInteger에는 식별자 형식 문자가 없습니다.

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

참고 항목