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


回答:


224

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

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

int: 2147483648 to 2147483647 
uint: 0 to 4294967295 

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

long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615

12
手作業で作業するのはとても楽しいです。32ビット符号付き変数は符号(正または負)に1ビットを使用するため、-2 ^ 31から+ 2 ^ 31-1までの値を格納できます
Jaco Pretorius

使用法についてintとuintを比較するとき、どちらが実行可能ですか?
アルンプラサード

c ++で同等のものは何ですか?
darkgaze

@JacoPretoriusそれは間違っています。8ビット整数の範囲は–128〜127です。9番目のビットは256を表します。したがって、8ビットを使用すると、255までのすべての値を表すことができます(9番目の値-1)。-128から127の範囲の長さは正確に255です。したがって、符号を保持するビットはありません。127までのすべての値は正です。上記の値は負の値で表示されます。255は-1になります。254は-2であるので、一つの方法128のダウンになる
のC4d

また、特にintとuintの場合、符号なし整数はCLSに準拠していないため、できるだけ頻繁にintを使用することをお勧めします。
db2

38

uintそして、ulongの符号なしのバージョンです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、2009

shortとushortについて言及しているが、byteとsbyteを省略していることに興味がある:)
Roman Starkov

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.