"int"와 "uint"/ "long"및 "ulong"의 차이점은 무엇입니까?


답변:


224

"u"접두사가 붙은 기본 데이터 유형은 비트 크기가 동일한 부호없는 버전입니다. 사실상 이것은 음수를 저장할 수 없지만 다른 한편으로 부호가있는 숫자보다 두 배 큰 양수를 저장할 수 있음을 의미합니다. 서명 된 대응 물에는 "u"접두사가 없습니다.

int (32 비트)에 대한 제한은 다음과 같습니다.

int: 2147483648 to 2147483647 
uint: 0 to 4294967295 

긴 (64 비트) :

long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615

12
이것은 손으로 운동하는 것이 아주 재미 있습니다. 1 - 32 비트 부호있는 변수는 (양 또는 음) 그래서 사이 -2 ^ 31, 2 ^ 31 + 값을 저장할 수 부호 1 비트를 사용한다
자코 프리 토 리우스

사용을 위해 int와 uint를 비교할 때 어느 것이 가능합니까?
Arun Prasad

C ++에 해당하는 것은 무엇입니까?
darkgaze

@JacoPretorius 틀 렸습니다. 8 비트 int의 범위는 –128에서 127입니다. 9 번째 비트는 256을 나타냅니다. 따라서 8 비트를 사용하면 최대 255 (9 번째 값-1)까지 모든 값을 나타낼 수 있습니다. -128에서 127까지의 범위는 정확히 255입니다. 따라서 부호를 보유하는 비트가 없습니다. 127까지의 모든 값은 양수입니다. 위의 값은 음수로 표시됩니다. 255는 -1이됩니다. 254는 -2이므로 편도 128까지 내려갑니다.
C4d

특히 int 대 uint의 경우 부호없는 정수가 CLS 규격이 아니며 가능한 한 자주 int를 사용하는 것이 좋습니다.
db2

38

uintulong의 서명되지 않은 버전입니다 intlong. 그것은 그들이 부정적 일 수 없다는 것을 의미합니다. 대신 최대 값이 더 큽니다.

유형 Min Max CLS 규격
int -2,147,483,648 2,147,483,647 예
uint 0 4,294,967,295 아니요
long –9,223,372,036,854,775,808 9,223,372,036,854,775,807 예
ulong 0 18,446,744,073,709,551,615 아니오

소스 코드에 리터럴 unsigned int를 작성하려면 접미사 u또는 U예를 들어 사용할 수 있습니다 123U.

CLS 호환 이 되려면 공용 인터페이스에서 uint 및 ulong을 사용하지 마십시오 .

자세한 내용은 설명서를 참조하십시오.

그건 그렇고, shortushortbytesbyte도 있습니다.


이것은 흥미 롭습니다. CLS 규격에 대해 무엇을 의미합니까? 링크는 int에 대한 MSDN 문서로 이동합니다. "CLS"가 C # 언어 사양을 의미한다면 이해할 수 없습니다. 사양은 uint와 ulong을 모두 명확하게 설명합니다 (섹션 1.3)
Isak Savo

1
@Isak Savo : C # 이외의 다른 .NET 언어에서 사용할 수있는 인터페이스를 작성하는 경우 CLS를 준수하는 것이 중요합니다.
Mark Byers

short 및 ushort를 언급하지만 byte와 sbyte는
생략합니다.

10

u을 의미 unsigned하므로 ulong부호가없는 큰 숫자도 마찬가지 입니다. ulong보다 큰 값을에 저장할 수 long있지만 음수는 허용되지 않습니다.

long값은 플러스 / 마이너스의 번호 인 경우에 표시 할 첫 번째 자리에, 64 비트에 저장된다. 하면서 ulong번호를 저장하기위한 모든 64 비트와 같은 64 비트이다. 따라서 ulong의 최대 값은 2 (64) -1이고 long은 2 (63) -1입니다.


9

차이가 있다는 것입니다 uint그리고 ulong그들은이 음의 값을 허용하지 않습니다 범위를 의미하는 것은 다른 서명되지 않은 데이터 유형입니다 :

int range: -2,147,483,648 to 2,147,483,647
uint range: 0 to 4,294,967,295

long range: 9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
ulong range: 0 to 18,446,744,073,709,551,615
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.