直定数
読み:ちょくていすう
外語:literal
プログラム
、ステートメントに、内容そのままに書かれた
定数
のこと。
英語
で「リテラル」といい、こちらの表現が広く使われている。
目次
概要
特徴
数値直定数
整数直定数
10進数
2進数
8進数
16進数
浮動小数点数直定数
文字直定数
文字列直定数
boolean直定数
null直定数
ヒアドキュメント
概要
直定数(リテラル)が利用できない
プログラミング言語
は、おそらく存在しない。それほどに基本的なものである。
高級言語においては、主に次のような直定数が存在する。
数値直定数(数値リテラル)
整数直定数(整数リテラル)
浮動小数点数直定数(浮動小数点数リテラル)
文字直定数(文字リテラル)
文字列直定数(文字列リテラル)
boolean直定数(booleanリテラル)
null直定数(nullリテラル)
ヒアドキュメント
特徴
数値直定数
整数直定数
直定数のもっとも基本的なものは、整数値を即値で与えるものである。
最もシンプルなものは10進数のみが利用できるが、さまざまな
基数
に対応するプログラミング言語もある。
10進数
最も普通の数値。
C
、
C++
、
Java
では、0以外の数字で始まる数字の列が、10進数の直定数である。但し、ゼロ自体は0と書かれる。
BASIC
、
Delphi
では、数字の列をそのまま書けば、10進数の直定数である。
2進数
BASIC
では、&Bから始まり、0と1のみの数字の列が、2進数の直定数である。
C
と
Java
では、標準では2進数の直定数は存在しない。2進数は、8進数などより遥かに多く使われているはずにも関わらず、である。
Delphi
にも2進数直定数は存在しない。
但し
C/C++
では実装により、0bまたは0Bから始まり、0と1のみの数字の列を、2進数の直定数とするものがあった。例えば
GCC
ではGCC 4.3以降で対応した。他にも組み込み系のCコンパイラーで対応する例が散見される。需要が高いからだろう。
C++
では、
C++14
以降で、この機能を公式に採用した。
Swift
では、当初よりC++と同様に0bから始まる仕様を採用した。
8進数
C
、
C++
、
Java
では、0から始まり、0〜7までの数字の列が、8進数の直定数である。
BASIC
では、&Oから始まり、0〜7までの数字の列が、8進数の直定数である。
Delphi
には8進数直定数は存在しない。
Swift
では、0oから始まり、0〜7までの数字の列が、8進数の直定数である。C/C++と違い、0oとなっている。
16進数
C
、
C++
、
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で表わす。
この型は、
Java
、
JavaScript
、
PHP
などの言語にある。
C++でも
C++11
から
nullptr
が追加された。
ヒアドキュメント
Perl
や
Ruby
などにある、文字列直定数の拡張的機能。
再検索