intとlongの違い
コンテンツ
データ型intおよびlongは、Javaで説明されている2つの整数データ型の1つです。 Javaでは、int型とlong型は符号付き、+ ve値と-ve値です。 Javaは、unsigned intおよびlong型をサポートしていません。 intデータ型とlongデータ型の基本的な違いは、各型の幅です。データ型intの幅は、int型の変数に対して32ビットです。一方、データ型longは、long型の変数に対して64ビットの幅を持ちます。以下の比較チャートは、intとlongのその他の違いを示しています。
- 比較表
- 定義
- 主な違い
- 結論
比較表
比較の根拠 | int | 長いです |
---|---|---|
ベーシック | データ型intは32ビットです。 | longデータ型は64ビットです。 |
バイト | バイト単位でカウントする場合、intは4バイトです。 | バイト単位でカウントする場合、longは8バイトです。 |
範囲 | Javaでは、int型の範囲は–2,147,483,648〜2,147,483,647です。 | Javaでは、long型の範囲は –9,223,372,036,854,775,808〜9,223,372,036,854,775,807。 |
キーワード | int型の変数を宣言するために使用されるキーワードは「int」です。 | long型の変数を宣言するために使用されるキーワードは「long」です。 |
記憶 | int変数を格納するために必要なメモリは、longに比べて少なくなります。 | 長い変数を格納するために必要なメモリは、intに比べて大きくなります。 |
int型の定義
データ型intは、整数値を保持する最も一般的に使用されるデータ型です。 int変数が保持できる値は、短すぎず、長すぎません。一般的に、int変数の値は、ループを制御するループ変数として使用されるか、配列のインデックス変数として使用されます。データ型byteおよびshortは、データ型intと比較すると範囲が短くなりますが、int変数の値が短い範囲であっても、intを置き換えることはできません。この背後にある理由は、式でデータ型byteおよびshortを使用すると、その式を評価するときに、コンパイラによってデータ型byteおよびshortがintに昇格されるためです。したがって、これから、整数が必要な場合は常にintを使用する方が良いと言えます。
intデータ型の使用方法を見てみましょう。
バイトa = 70;バイトb = 80; int c = a * b; //エラーなし。バイトd = a + 10; //コンパイル時エラー。
上記のコードでわかるように、値70および80を含む2つのバイト変数aおよびbは有効なバイト範囲の値です。しかし、a * bの中間結果。バイトの制限を超えています。したがって、コンパイラは、式で使用されている場合、byte、short、およびchar変数をint型に自動的に昇格させます。ここで、変数aとbが型intに昇格され、型intの型intへの割り当てが行われるため、a * bの結果がエラーを引き起こさずにスムーズにコンパイルされるint変数に割り当てられていることがわかります。 tはエラーの原因です。
コードの最後の行には、バイト変数「a」に値10が追加された式がありますが、その結果はまだバイトの制限を超えていません。ただし、式「a + 10」の中間結果をバイト変数「d」に割り当てると、式評価バイト変数「a」がint型に昇格されるため、コンパイル時エラーが発生します。また、int型からbyte型への代入は許可されていません。したがって、コンパイル時エラーが発生します。
ロングタイプの定義
データ型longは、byte、short、およびint型と比較して最大の範囲と幅を持ちます。 Javaでは、long型は64ビット符号付き整数型です。 long型は、int型が必要な値を保持するのにそれほど大きくない場合に使用されます。 longの範囲は–9,223,372,036,854,775,808〜9,223,372,036,854,775,807で、これは非常に大きく、大きな整数のような大きな値を保持します。以下の例でlong型を理解できます。
クラスの重み{public static void main(String args){int item; int wt_per_item;長いグラム;ロングボックス;アイテム= 10000000; //アイテムの数を指定するwt_per_item = 10000; // 1つのアイテムの重量をキログラム単位で指定= wt_item * 1000; //重量をグラムに変換Box = item * grams; //ボックスの重量をグラムで計算しますSystem.out.ln( "Number of item" + item); System.out.ln( "アイテムごとの重量" + wt_per_item + "kilos"); System.out.ln( "箱の重さ(グラム)" + Box + "kilos"); }}アイテム数10000000アイテムあたりの重量10000キログラム箱の重量100000000000000キログラム
上記のコードの出力を確認してください。 10000000個のアイテムを含むボックスを含むボックス全体の重量に対して計算された結果。アイテムごとに10000キロの重量があります。グラム単位のボックスの重量の計算値は、int変数では保持できません。したがって、大きな値を計算または保持する場合は、long型を使用する必要が生じることがあります。
- タイプintとlongの基本的な違いは、幅がintが32ビットで、longが64ビットであることです。
- タイプintがビットではなくバイトでカウントされた場合のタイプintおよびlongは、タイプintが4バイトで、タイプintが8バイトの場合、タイプlongはちょうど2回です。
- Javaでは、int型の範囲は–2,147,483,648から2,147,483,647であり、long型の範囲は–9,223,372,036,854,775,808から9,223,372,036,854,775,807で、int型よりもはるかに大きいです。
- タイプintの変数の宣言に使用されるキーワードは「int」です。一方、long型の変数の宣言に使用されるキーワードは「long」です。
- 通常、int型の値を保持するために必要なメモリは、long型に比べて少なくなります。
結論:
中範囲の値が必要な場合はコードを記述しているときにint型を使用できますが、式によって生成される出力が大きくなる場合、または計算に大きな値を使用する場合は、long型変数を使用して保持する必要がありますその価値。