web-dev-qa-db-ja.com

「int」と「uint」/「long」と「ulong」の違いは何ですか?

intlong(32ビットと64ビットの数値)は知っていますが、uintulongとは何ですか?

91

「u」というプレフィックスの付いたプリミティブデータ型は、同じビットサイズの符号なしバージョンです。事実上、これは負の数を格納できないことを意味しますが、一方で、署名された対応物の2倍の正の数を格納できます。署名された対応物には、接頭辞「u」が付いていません。

Int(32ビット)の制限は次のとおりです。

int: –2147483648 to 2147483647 
uint: 0 to 4294967295 

そして長い間(64ビット):

long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
181
Isak Savo

uintおよびulongは、intおよびlongの符号なしバージョンです。それは彼らが否定的であってはならないことを意味します。代わりに、最大値が大きくなります。

タイプMin Max CLS準拠
 int -2,147,483,648 2,147,483,647はい
 uint 0 4,294,967,295 No 
 long –9,223,372,036,854,775,808 9,223,372,036,854,775,807 .____。]

ソースコードにリテラルの符号なしintを記述するには、uまたはUのサフィックスを使用できます(例:123U)。

CLS-Compliant にしたい場合は、パブリックインターフェイスでuintとulongを使用しないでください。

詳細については、ドキュメントを参照してください。

ちなみに、 shortshortbytesbyte もあります。

35
Mark Byers

uunsignedを意味するため、ulongは符号なしの大きな数字です。 ulongよりも大きい値をlongに格納できますが、負の数は許可されません。

longの値は64ビットで保存され、最初の数字が正数か負数かを示します。 ulongも64ビットで、すべて64ビットで数値を格納します。したがって、ulongの最大値は2(64)-1で、longは2(63)-1です。

10
Cheng Chen

違いは、uintulongは符号なしデータ型であり、範囲が異なることを意味します。負の値は受け入れません。

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
8
srodriguez