uint(C# 참조)
uint 키워드는 다음 표에 표시된 크기와 범위에 따라 값을 저장하는 정수 계열 형식을 나타냅니다.
형식 |
범위 |
Size |
.NET Framework 형식 |
---|---|---|---|
uint |
0 ~ 4,294,967,295 |
부호 없는 32비트 정수 |
참고 uint 형식은 CLS 규격이 아닙니다. 가능하면 int를 사용합니다.
리터럴
다음 예제에서와 같이 uint 형식 변수를 선언하고 초기화할 수 있습니다.
uint myUint = 4294967290;
정수 리터럴에 접미사가 없는 경우 해당 정수 리터럴의 형식은 그 값이 표현될 수 있는 형식인 int, uint, long, ulong 중에서 첫째 형식입니다. 이 예제에서 리터럴 형식은 uint입니다.
uint uInt1 = 123;
또한 다음과 같이 u 또는 U 접미사를 사용할 수 있습니다.
uint uInt2 = 123U;
U 또는 u 접미사를 사용하는 경우 리터럴의 형식은 리터럴의 숫자 값에 따라 uint 또는 ulong으로 결정됩니다. 예를 들면 다음과 같습니다.
Console.WriteLine(44U.GetType());
Console.WriteLine(323442434344U.GetType());
이 코드는 System.UInt32 뒤에 System.UInt64를 표시합니다. 이 두 형식은 각각 uint 및 ulong의 내부 형식입니다. 두 번째 리터럴이 너무 커서 uint 형식으로 저장할 수 없기 때문입니다.
변환
uint에서 long, ulong, float, double 또는 decimal로의 미리 정의된 암시적 변환이 있습니다. 예를 들면 다음과 같습니다.
float myFloat = 4294967290; // OK: implicit conversion to float
byte, ushort 또는 char에서 uint으로의 미리 정의된 암시적 변환이 있습니다. 그 외의 다른 경우에는 캐스트를 사용해야 합니다. 예를 들어, 캐스트를 사용하지 않으면 다음 대입문에서 컴파일 오류가 발생합니다.
long aLong = 22;
// Error -- no implicit conversion from long:
uint uInt1 = aLong;
// OK -- explicit conversion:
uint uInt2 = (uint)aLong;
또한 부동 소수점 형식에서 uint로의 암시적 변환은 없습니다. 예를 들어, 다음 문에서 명시적 캐스트를 사용하지 않으면 컴파일러 오류가 발생합니다.
// Error -- no implicit conversion from double:
uint x = 3.0;
// OK -- explicit conversion:
uint y = (uint)3.0;
부동 소수점 형식 및 정수 계열 형식이 함께 사용되는 산술식에 대한 자세한 내용은 float 및 double을 참조하십시오.
암시적 숫자 변환 규칙에 대한 자세한 내용은 암시적 숫자 변환 표(C# 참조)를 참조하십시오.
C# 언어 사양
자세한 내용은 C# 언어 사양을 참조하십시오. 이 언어 사양은 C# 구문 및 사용법에 대한 신뢰할 수 있는 소스입니다.