直定数

読み:ちょくていすう
読み:ちょくじょうすう
外語:literal
品詞:名詞

プログラム、ステートメントに、内容そのままに書かれた定数のこと。英語で「リテラル」といい、こちらの表現が広く使われている。

直定数(リテラル)が利用できないプログラミング言語は、おそらく存在しない。それほどに基本的なものである。

高級言語においては、主に次のような直定数が存在する。

  • 数値直定数(数値リテラル)
    • 整数直定数(整数リテラル)
    • 浮動小数点数直定数(浮動小数点数リテラル)
  • 文字直定数(文字リテラル)
  • 文字列直定数(文字列リテラル)
  • boolean直定数(booleanリテラル)
  • null直定数(nullリテラル)
  • ヒアドキュメント

数値直定数

整数直定数

直定数のもっとも基本的なものは、整数値を即値で与えるものである。

最もシンプルなものは10進数のみが利用できるが、さまざまな基数に対応するプログラミング言語もある。

10進数

最も普通の数値。

CC++Javaでは、0以外の数字で始まる数字の列が、10進数の直定数である。但し、ゼロ自体は0と書かれる。

BASICDelphiでは、数字の列をそのまま書けば、10進数の直定数である。

2進数

BASICでは、&Bから始まり、0と1のみの数字の列が、2進数の直定数である。

CC++Javaでは、標準では2進数の直定数は存在しない。2進数は、8進数などより遥かに多く使われているはずにも関わらず、である。

但しC/C++では実装により、0bから始まり、0と1のみの数字の列を、2進数の直定数とするものがある。例えばgccではgcc 4.3以降で対応した。他にも組み込み系のCコンパイラで対応する例が散見される。需要が高いからだろう。

Delphiにも2進数直定数は存在しない。

8進数

CC++Javaでは、0から始まり、0〜7までの数字の列が、8進数の直定数である。

BASICでは、&Oから始まり、0〜7までの数字の列が、8進数の直定数である。

Delphiには8進数直定数は存在しない。

16進数

CC++Javaでは、0xまたは0Xから始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。

BASICでは、&Hから始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。

DelphiやTurbo Pascalでは、$から始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。

いずれも、A〜Fは大文字・小文字を問わない。

浮動小数点数直定数

浮動小数点数を表わす直定数である。基本的には、次のスタイルで表現される。

整数部 小数点 小数部 指数部

整数部は原則として10進数の数値だが、1999(平成11)年版のCであるC99(ISO/IEC 9899:1999)では、整数部に16進数を用いることができる。

小数点は、プログラミング言語界の標準はピリオドである。

小数部は原則として10進数の数値である。

指数部は、区切りの記号のあと、+または−を付け、指数の値を10進数で記述する。+は省略できる。C/C++の場合、指数部の区切りがeまたはEなら単精度、dまたはDなら倍精度、qまたはQなら4倍精度である。

文字直定数

C/C++では一文字を'で括ったものを文字直定数という。

例えば、'A'のようにして用いる。

文字列直定数

C/C++では、0文字以上の文字列を"で括ったものを文字列直定数という。

boolean直定数

trueまたはfalseのいずれかである。

null直定数

空参照を表現する定数であり、一般にnullで表わす。

この型は、JavaJavaScriptPHPなどの言語にある。

ヒアドキュメント

PerlRubyなどにある、文字列直定数の拡張的機能。