int
とlong
(32ビットと64ビットの数値)は知っていますが、uint
とulong
とは何ですか?
「u」というプレフィックスの付いたプリミティブデータ型は、同じビットサイズの符号なしバージョンです。事実上、これは負の数を格納できないことを意味しますが、一方で、署名された対応物の2倍の正の数を格納できます。署名された対応物には、接頭辞「u」が付いていません。
Int(32ビット)の制限は次のとおりです。
int: –2147483648 to 2147483647
uint: 0 to 4294967295
そして長い間(64ビット):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
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を使用しないでください。
詳細については、ドキュメントを参照してください。
u
はunsigned
を意味するため、ulong
は符号なしの大きな数字です。 ulong
よりも大きい値をlong
に格納できますが、負の数は許可されません。
long
の値は64ビットで保存され、最初の数字が正数か負数かを示します。 ulong
も64ビットで、すべて64ビットで数値を格納します。したがって、ulongの最大値は2(64)-1で、longは2(63)-1です。
違いは、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