long val = 5000000000;
この割り当て中のエラーは、「int型のリテラル5000000000が範囲外です」です。コンパイラがデフォルトでリテラルをintと見なすのはなぜですか?
Longには特定の接尾辞があります。つまり、L
です。接尾辞がない場合、5000000000はint
タイプであると見なされます。また、5000000000がint
の範囲外であるため、エラーが発生します。したがって、5000000000の最後にL
を追加して、long
値として扱う必要があります。宣言をから変更します
long val = 5000000000;
に
long val = 5000000000L;
以下に示すように、番号の最後に文字Lを追加します
long val = 5000000000L;
long:longデータ型は、64ビットの符号付き2の補数整数です。最小値は-9,223,372,036,854,775,808、最大値は9,223,372,036,854,775,807(両端を含む)です。
変数の初期化に明示的に使用される値に「l」または「L」を追加する必要があります。 0と同じくらい小さいです。
long val = 0L;