longとintの違いとは?あつかう範囲や名前の由来もプログラマーがわかりやすく解説
C++:C言語と同じ考え方
C++言語はC言語をもとにオブジェクト指向などを取り入れたプログラミング言語です。今でも進化しています。C++言語の整数の数値型変数の考え方はC言語と同じです。同じようにlongやshort、signedやunsignedがあります。また、長さも同様です。
こちらの記事もおすすめ
C++とC#の違いとは?なぜ名前が似ているの?特徴や速度もプログラマーがわかりやすく解説
Java・C#:長さはすべて決まっている
C言語やC++言語をもとに生まれたのがJavaやC#です。こちらも考え方は同様ですが、大きな違いがあります。それは、longやintのサイズが明確に決まっていることです。C言語ではそれぞれの環境に合わせるために決まっていません。JavaやC#では一つのプログラムがどこでも動くことを目指しているので、サイズも厳密に決まっているのです。また、C/C++言語ではshort intやlong intをshortやlongと省略可能ですが、Java/C#では元々がshort,longになります。
具体的な例を以下にあげておきますので、参考にしてください。
・Java(符号なしはない)
・byte 8ビット符号付き(-128〜127)
・short 16ビット符号付き(-32,768〜32,767)
・int 32ビット符号付き(-2,147,483,648〜2,147,483,647)
・long 64ビット符号付き(9,223,372,036,854,775,808〜9,223,372,036,854,775,807)
・C#
・sbyte 8ビット符号付き(-128〜127)
・byte 8ビット符号なし(0〜255)
・short 16ビット符号付き(-32,768〜32,767)
・ushort 16ビット符号なし(0〜65,535)
・int 32ビット符号付き(-2,147,483,648〜2,147,483,647)
・uint 32ビット符号なし(0〜4,294,967,295)
・long 64ビット符号付き(9,223,372,036,854,775,808〜9,223,372,036,854,775,807)
・ulong 64ビット符号なし(0〜18,446,744,073,709,551,615)
Go・Swift:直球勝負、longではなくint64
Googleが発表したGo言語や、Appleが発表したSwift言語ではlongやshortという呼び方をやめて、int+ビットの長さで表しています。例えば、Go言語の32ビットの符号付き整数型はint32で、64ビットの符号なし整数型はuint64です。どちらもint,uintとビット数を指定しない書き方もあります。この場合はコンピュータによってビット数が32ビットか64ビットか変わるのです。
GoとSwiftについても例を挙げますので、参考にしてください。
・Go言語
・int コンピュータで異なる(32ビットか64ビット符号付き)
・uint コンピュータで異なる(32ビットか64ビット符号なし)
・int8 8ビット符号付き(-128〜127)
・uint8 8ビット符号なし(0〜255) ※byteでもよい
・int16 16ビット符号付き(-32,768〜32,767)
・uint16 16ビット符号なし(0〜65,535)
・int32 32ビット符号付き(-2,147,483,648〜2,147,483,647)
・uint32 32ビット符号なし(0〜4,294,967,295)
・int64 64ビット符号付き(9,223,372,036,854,775,808〜9,223,372,036,854,775,807)
・uint64 64ビット符号なし(0〜18,446,744,073,709,551,615)
・Swift言語
・Int コンピュータで異なる(32ビットか64ビット符号付き)
・UInt コンピュータで異なる(32ビットか64ビット符号なし)
・Int8 8ビット符号付き(-128〜127)
・UInt8 8ビット符号なし(0〜255)
・Int16 16ビット符号付き(-32,768〜32,767)
・UInt16 16ビット符号なし(0〜65,535)
・Int32 32ビット符号付き(-2,147,483,648〜2,147,483,647)
・UInt32 32ビット符号なし(0〜4,294,967,295)
・Int64 64ビット符号付き(9,223,372,036,854,775,808〜9,223,372,036,854,775,807)
・UInt64 64ビット符号なし(0〜18,446,744,073,709,551,615)
\次のページで「Python:数値はひとつ、サイズの違いなし」を解説!/