直定数

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

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

目次

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

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

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

数値直定数

整数直定数

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

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

10進数

最も普通の数値。

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

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

2進数

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

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

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

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

C++では、C++14以降で、この機能を公式に採用した。

Swiftでは、当初よりC++と同様に0bから始まる仕様を採用した。

8進数

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

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

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

Swiftでは、0oから始まり、0〜7までの数字の列が、8進数の直定数である。C/C++と違い、0oとなっている。

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などの言語にある。

C++でもC++11からnullptrが追加された。

ヒアドキュメント

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

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club