int
とlong
(32 ビットおよび 64 ビットの数値)については知っていますがuint
、 と とは何ulong
ですか?
5 に答える
「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
タイプ 最小 最大 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
orU
を使用できます123U
。
CLS に準拠したい場合は、パブリック インターフェイスで uint と ulong を使用しないでください。
詳細については、ドキュメントを参照してください。
違いは、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
u
を意味するunsigned
ので、ulong
符号なしの大きな数です。ulong
よりも大きな値を格納できますlong
が、負の数は許可されません。
値は 64 ビットで格納され、そのlong
最初の桁が正数か負数かを示します。whileulong
も 64 ビットで、すべて 64 ビットで数値を格納します。したがって、ulong の最大値は 2(64)-1 ですが、long の最大値は 2(63)-1 です。