数値リテラルは、数字、プラス符号、マイナス符号、および小数点から選択される文字列です。 数値リテラルは、最大 31 桁まで使用できます。-Dd31 オプションを指定してコンパイルする必要はありません。31 桁がデフォルトです。
数値リテラルの書き方は、次の規則によって規定されています。
リテラルが数値リテラルの書き方の規則に従っているものの、引用符で囲まれている場合、それは文字リテラルです。
数値リテラルは、2 進 (バイナリ)、8 進、または 16 進表記でも指定できます。数値リテラルをこれらのいずれかの形式で指定するには、数値の前に次のいずれかのプレフィックスを付けます。
次に例を示します。
数字 | 2 進 | 8 進 | 16 進 |
---|---|---|---|
3 | B#11 | O#3 | X#3 または H#3 |
8 | B#1000 | O#10 | X#8 または H#8 |
12 | B#1100 | O#14 | X#C または H#C |
128 | B#10000000 | O#200 | X#80 または H#80 |
255 | B#11111111 | O#377 | X#FF または H#FF |
# の後の先行ゼロは無視されます。たとえば、X#00FF および X#FF は同じです。
コンパイラは、このようにして指定された各数値リテラルを、符号なしの Long 型整数に変換します。ほとんどの場合、これは 32 ビットの符号なしの数字であるため、この表記で指定できる数値リテラルの最大値は 4294967295、つまり (2**32) -1 です。
LENGTH OF 式は、添え字または参照修飾語として使用する場合を除き、数値リテラルを使用する任意の場合で使用できます。コンパイラは、数値リテラルを符号化した場合と同様にこの式を処理します。LENGTH OF 式は次のように記述します。
LENGTH OF data-name
data-name は、数値リテラル、文字リテラル、または任意のタイプのデータ項目の名前です。data-name が表項目を指す場合、添え字を含めることができます。コンパイラは、LENGTH OF 式の値を計算し、LENGTH OF で参照されるデータ項目またはリテラルが使用する現在の記憶域バイト数に相当する数値リテラルに置き換えます。次に例を示します。
77 my-item PIC x(10). 78 my-item-length value LENGTH OF my-item.
上記の式は次のようになります。
77 my-item PIC x(10). 78 my-item-length value 10.
LENGTH OF 式は、以下の例で示すように、手続き部でも使用できます。
01 my-data. 03 my-table occurs 20 times. 05 my-element-1 pic x(10). 05 my-element-2 pic 99. MOVE LENGTH OF my-element-1 TO data-size. MOVE LENGTH OF my-table TO data-size. MOVE LENGTH OF my-table(1) TO data-size.
この例では、コンパイラは最初の MOVE を MOVE 10 TO data-size として処理し、同様に 2 番目の MOVE を MOVE 240 TO data-size として、3 番目の MOVE を MOVE 12 TO data-size として処理します。
[ + ] k.m { E } [ + ] n [ - ] { e } [ - ]
詳細は次のとおりです。
浮動小数点の数字の例を以下に示します。
-12.345e12 .0123E-6 123.E1