JavaA2Z

KAB-studio > プログラミング > JavaA2Z > 「L」とは

「L」

日本語 長整数定数値
英語 Long
ふりがな える
フリガナ エル

解説

整数リテラルに付ける、longの印。
 
整数リテラルの末尾に付ける文字
「100L」のように整数リテラルの末尾に「L」を付けることで、その整数リテラルlongとみなされる。「l」でも同様。
整数リテラルはそのままだとintとみなされるため、intの範囲を超えた整数値、つまり2147483647より大きい、もしくは-2147483648未満の値を記述するとコンパイルエラーとなる。その場合に、この「L」もしくは「l」を末尾に付ければよい。

「L」もしくは「l」を末尾に付けた整数リテラルlongとなるため、当然long変数で受け取る必要がある。
また、「L」もしくは「l」を末尾に付けたとしても、当然longの範囲を超えた値、つまり9223372036854775807より大きい値や-9223372036854775808未満の値は表現できないので注意。これらは整数リテラルで表現できないため、BigDecimalクラスを用いて足し合わせるといいだろう。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 整数リテラルはint型です。
        // int型の範囲であれば当然整数リテラルで表現できます。
        long lOK1 = 2147483647;
        long lOK2 = -2147483648;
        System.out.println( lOK1 );
        System.out.println( lOK2 );
        // 2147483647
        // -2147483648

        // でも、それよりサイズの大きい値、つまりlong型サイズの
        // 整数リテラルはそのままだとコンパイルエラーになります。

        // ※コンパイルエラーの例
        // long lNG1 = 2147483648;
        // ※エラーメッセージ
        // 型 int のリテラル 2147483649 は範囲外です
        // ※コンパイルエラーの例ここまで

        // ※コンパイルエラーの例
        // long lNG2 = -2147483649;
        // ※エラーメッセージ
        // 型 int のリテラル 2147483649 は範囲外です
        // ※コンパイルエラーの例ここまで

        // この場合、末尾に「L」もしくは「l」を付けるとlong型と
        // みなされてコンパイルエラーにはなりません。
        long lOK3 = 2147483648L;
        System.out.println( lOK3 );
        // 2147483648

        long lOK4 = -2147483649L;
        System.out.println( lOK4 );
        // -2147483649

        long lOK5 = 2147483648l;
        System.out.println( lOK5 );
        // 2147483648

        long lOK6 = -2147483649l;
        System.out.println( lOK6 );
        // -2147483649

        // 当然long型になるので、int型変数には格納できません。
        // ※コンパイルエラーの例
        // int i = 2147483648L;
        // ※エラーメッセージ
        // 型の不一致: long から int には変換できません
        // ※コンパイルエラーの例ここまで

        // また、long型の範囲を超えた値も表現できません。
        // ※コンパイルエラーの例
        // long lNG3 = 9223372036854775808L;
        // ※エラーメッセージ
        // 型 long のリテラル 9223372036854775808L は範囲外です
        // ※コンパイルエラーの例ここまで

        // あと、このコンパイルエラーは整数リテラルとして直接
        // 記述する際の問題なので、直接書かなければ問題ありません。
        // ただし、何も付けない整数リテラルはあくまでint型という
        // ことを忘れずに。
        long lNG4 = 2147483647 + 1;
        System.out.println( lNG4 );
        // -2147483648

        // このように、コンパイルエラーにはなりませんが値としては
        // 正しくありません。int型同士の足し算を行い、その結果も
        // int型になって、桁溢れしているためです。
        // こういう場合は片方をlong型にキャストしましょう。
        long lOK7 = (long)2147483647 + 1;
        System.out.println( lOK7 );
        // 2147483648
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // 整数リテラルはint型です。
        // int型の範囲であれば当然整数リテラルで表現できます。
        long lOK1 = 2147483647;
        long lOK2 = -2147483648;
        System.out.println( lOK1 );
        System.out.println( lOK2 );
        // 2147483647
        // -2147483648

        // でも、それよりサイズの大きい値、つまりlong型サイズの
        // 整数リテラルはそのままだとコンパイルエラーになります。

        // ※コンパイルエラーの例
        // long lNG1 = 2147483648;
        // ※エラーメッセージ
        // 型 int のリテラル 2147483649 は範囲外です
        // ※コンパイルエラーの例ここまで

        // ※コンパイルエラーの例
        // long lNG2 = -2147483649;
        // ※エラーメッセージ
        // 型 int のリテラル 2147483649 は範囲外です
        // ※コンパイルエラーの例ここまで

        // この場合、末尾に「L」もしくは「l」を付けるとlong型と
        // みなされてコンパイルエラーにはなりません。
        long lOK3 = 2147483648L;
        System.out.println( lOK3 );
        // 2147483648

        long lOK4 = -2147483649L;
        System.out.println( lOK4 );
        // -2147483649

        long lOK5 = 2147483648l;
        System.out.println( lOK5 );
        // 2147483648

        long lOK6 = -2147483649l;
        System.out.println( lOK6 );
        // -2147483649

        // 当然long型になるので、int型変数には格納できません。
        // ※コンパイルエラーの例
        // int i = 2147483648L;
        // ※エラーメッセージ
        // 型の不一致: long から int には変換できません
        // ※コンパイルエラーの例ここまで

        // また、long型の範囲を超えた値も表現できません。
        // ※コンパイルエラーの例
        // long lNG3 = 9223372036854775808L;
        // ※エラーメッセージ
        // 型 long のリテラル 9223372036854775808L は範囲外です
        // ※コンパイルエラーの例ここまで

        // あと、このコンパイルエラーは整数リテラルとして直接
        // 記述する際の問題なので、直接書かなければ問題ありません。
        // ただし、何も付けない整数リテラルはあくまでint型という
        // ことを忘れずに。
        long lNG4 = 2147483647 + 1;
        System.out.println( lNG4 );
        // -2147483648

        // このように、コンパイルエラーにはなりませんが値としては
        // 正しくありません。int型同士の足し算を行い、その結果も
        // int型になって、桁溢れしているためです。
        // こういう場合は片方をlong型にキャストしましょう。
        long lOK7 = (long)2147483647 + 1;
        System.out.println( lOK7 );
        // 2147483648
    }
}

この単語を含むページ

「みだし」に含まれているページ

「解説」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2010/04/06
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。