リテラルとサフィックスについて(C#)

  • このエントリーをはてなブックマークに追加

スポンサーリンク

※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~

目次

リテラルとは

リテラル(literal)とは、英語では「文字通りの」といった意味を持ちます。

プログラムにおいて、「リテラル」とは、「変数」の対となる言葉です。

例えば、変数を宣言した時に、int型であれば、10などの数値が入り、string型であれば、”Hello”などの文字列が入るでしょう。

10やHello”に対してリテラルという言葉を使用します。

このように、変数と違い、見た通り(文字通り)解釈できる数値や文字列のことを「リテラル」と呼びます。

C#においてリテラルは、以下のようなリテラルがあります。

整数リテラル
数値型で取り扱う数値。
(例)20

浮動小数点リテラル
小数点を含んだ数値。サフィックスを指定しない場合、double型として解釈されます。
(例)1.23、1.7e3

数値リテラルは、整数リテラルと浮動小数点リテラルの2つの意味を含んだ言葉になります。

文字リテラル
char型で取り扱う文字。シングルクォーテーション(‘)で囲む。
(例)’H’、’う’

文字列リテラル
string型で取り扱う文字。ダブルクォーテーション(“)で囲む。
(例)”こんにちは” 、”このサイトのドメインはict119.com”

論理値リテラル
bool型で取り扱う真偽値。
(例)true、false

その他(発展編)

16進数のリテラル

16進法(hexadecimal) を使用したい場合は、数字の先頭に0xまたは0Xを付けます。

16進法の数字は0~9とa~fのアルファベットで構成されます。アルファベットは小文字と大文字の使用が可能です。

2進数のリテラル

2進法(binary)を使用したい場合は、数字の先頭に0bまたは0Bを付けます。

※C#7.0から2進数のリテラルが導入されました。

※いきなりアルファベット(xまたはb)から始まらないのは型の解釈がスムーズにできるようにするためでしょう。例えば、変数は、最初の1文字目に数字を使うことを許されていません(命名規則上)。逆に言えば、最初の一文字目で、数値かそれ以外か(変数などの識別子)を判断しています。16進法(2進法)のリテラルで、最初に一文字目に数字の0を持っている設計になっているのは、数値かそれ以外か判別を楽に行うためでしょう。

ソースコード(16進法と2進法)

実行結果

1a(16進法):26
FF(16進法):255
101(16進法):5
0111(2進法):7

サフィックスとは

サフィックス(suffix)とは、英語では「接尾語」といった意味を持ちます。

数値リテラルの型を明示したい場合にサフィックスを使用します。

データ型 サフィックス
ulong u(U)
long l(L)
ulong ul(UL,uL,Ulなど)
double d(D)
float f(F)
decimal m(M)

サフィックスは小文字でも大文字でも構いません。

ただし、小文字のエル(l)は数字のイチ(1)と紛らわしいので、使用を控えましょう。

※Visual Studioで小文字のエル(l)をサフィックスとして使用すると警告を受けます。

※ulongのサフィックスは片方が小文字で、もう片方が大文字表記することは可能です、また、UとLの順番も変更することができます。例えば、Luというサフィックスでもulong型と認識してくれます。

long型で数字を使いたいからといって、必ずしもサフィックスLを付ける必要はないです。

なぜなら、数値リテラルは、指定しなければint型として扱われますが、long型はint型を暗黙的に変換できるからです。

逆に、float型とdecimal型は暗黙的にdouble型を変換できません。

float型(32ビット)とdouble型(64ビット)を比較するとわかりますが、float型の方が持っている情報量は少ないです。

decimal型(10進演算)は、double型(2進演算)の完全な上位互換というわけではありません。そのため、どうしたってうまく変換できない部分が生じることがあります。

以上の点で、float型とdecimal型を扱いたい場合は、サフィックスを付ける必要があります。(明示的なキャストを行えば、サフィックスの使用を回避できますが、サフィックスを使用した方が断然楽です)

※long型ではサフィックスを指定しなくてもエラーになりませんが、float型とdecimal型ではエラーになります。(下図)

ソースコード(サフィックスの付け方)

関連記事

~プログラミングを勉強してみませんか?~

TechAcademy [テックアカデミー] 無料の体験講座が用意されているので、気軽に体験できます。

※私(サイト主)も無料体験講座を実際に受けてみました(→感想)

     

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)