2 進,8 進,16 進,およびホレリス定数は組込みデータ型を持っていません。これらの定数は,その使用方法に応じて,特定の数値型を取ることになります。
定数が 2 項演算子 (代入演算子を含む) との組み合わせで使われている場合,定数のデータ型は相手側の演算対象のデータ型となります。
| 文 | 定数のデータ型 | 定数の長さ (バイト数) |
| INTEGER(2) ICOUNT | ||
| INTEGER(4) JCOUNT | ||
| INTEGER(4) N | ||
| REAL(8) DOUBLE | ||
| REAL(4) RAFFIA, RALPHA | ||
| RAFFIA = B'1001100111111010011' | REAL(4) | 4 |
| RAFFIA = Z'99AF2' | REAL(4) | 4 |
| RALPHA = 4HABCD | REAL(4) | 4 |
| DOUBLE = B'1111111111100110011010' | REAL(8) | 8 |
| DOUBLE = Z'FFF99A' | REAL(8) | 8 |
| DOUBLE = 8HABCDEFGH | REAL(8) | 8 |
| JCOUNT = ICOUNT + B'011101110111' | INTEGER(2) | 2 |
| JCOUNT = ICOUNT + O'777' | INTEGER(2) | 2 |
| JCOUNT = ICOUNT + 2HXY | INTEGER(2) | 2 |
| IF (N .EQ. B'1010100') GO TO 10 | INTEGER(4) | 4 |
| IF (N .EQ. O'123') GO TO 10 | INTEGER(4) | 4 |
| IF (N. EQ. 1HZ) GO TO 10 | INTEGER(4) | 4 |
特定のデータ型 (通常は整数) が必須な状況では,定数はその型を取ります。
| 文 | 定数のデータ型 | 定数の長さ (バイト数) |
| Y(IX) = Y(O'15') + 3. | INTEGER(4) | 4 |
| Y(IX) = Y(1HA) + 3. | INTEGER(4) | 4 |
非 10 進定数が実引数として使用された場合,次のように扱われます。
2 進,8 進,および 16 進定数については,Alpha および ia64 プロセッサーでは INTEGER(8) となります。ia32 プロセッサーでは,4 バイトの長さが使用されます。
ホレリス定数については,どのデータ型にもなりません。
例:
| 文 | 定数のデータ型 | 定数の長さ (バイト数) |
| CALL APAC(Z'34BC2') | INTEGER(4) | 4 |
| CALL APAC(9HABCDEFGHI) | なし | 9 |
2 進,8 進,または 16 進定数が他の文脈で使用された場合,基本整数型になります (基本整数型はコンパイラ・オプションで制御することができます)。以下の例では,基本整数型は INTEGER(4) です。
| 文 | 定数のデータ型 | 定数の長さ (バイト数) |
| IF (Z'AF77') 1,2,3 | INTEGER(4) | 4 |
| IF (2HAB) 1,2,3 | INTEGER(4) | 4 |
| I = O'7777' - Z'A39' 1 | INTEGER(4) | 4 |
| I = 1HC - 1HA | INTEGER(4) | 4 |
| J = .NOT. O'73777' | INTEGER(4) | 4 |
| J = .NOT. 1HB | INTEGER(4) | 4 |
| 1 演算の中で 2 つの型なしの定数が使用された場合,両方の定数が基本整数型になります。 | ||
非 10 進定数の長さが,データ型の持つ長さと同じでない場合,次のように扱われます。
これらの定数は 16 バイトまでのデータを宣言することができます。定数の長さがデータ型の持つ長さよりも小さい場合,左側のけたに値ゼロが格納されます。
定数の長さがデータ型の持つ長さよりも大きい場合,定数は左側で切り捨てられます。非ゼロのけたが切り捨てられた場合,エラーが発生します。
「データ型の記憶列要件」は,各データ型が必要とするバイト数を示しています。
定数の長さがデータ型の持つ長さよりも小さい場合,定数の右側に空白が追加されます。
定数の長さがデータ型の持つ長さよりも大きい場合,定数は右側で切り捨てられます。空白文字以外の文字が切り捨てられた場合,エラーが発生します。
個々のホレリス文字は 1 バイトのメモリーを占有します。