float char 16/8/2進数リテラル
たまに使うやつら
ここでは、絶対に必要ではないけれどたまに使う型やリテラルを紹介する。
float
単精度浮動小数点数 (float、floating-point value の略) は、昔からある小数とかを表す型。精度が低いけれど、ごく一部の環境では稀に速く動くことがあったりするかもしれない。
double
のリテラルの後ろに、f
か F
をつけると float
のリテラルになる。
float a = 1.2f;
float b = 3.F;
float c = .5f;
前にも言ったけど、double
は倍精度浮動小数点数。フツーはこっちを使う。
char
char
は文字を表現するのに使われる 整数 型。といっても、英文字や一部半角記号 (詳しくは ASCII を参照) を表す数字しか格納できない。
char ch = 65; // ASCII で A にあたる数
std::cout << ch; // A
'
で囲った中に表現可能な文字を書くと、対応する整数に変換される。
文字通りの char
の値にできるので、こっちを使うべき。
char ch = 'A'; // 65 と同等
std::cout << ch; // A
日本語の一文字とかは容量が足りなくて単体で格納できない。
一応そのための別の型や表現手段はあるけれど、かなり複雑なやつなのに役に立たないので説明しないよ。
16/8/2進数リテラル
コンピュータで扱う数字は、よく 2進数 を扱う。これをプログラム中に直接書くときに、もっと見やすくするためのもの。
進数 というのは、桁上りする数のこと。例えば普段使っている 10進数 だと、0 1 2 ... 9
まで行って 10 11 ...
ってなる。9
の次で桁が上がっているわけね。
これが 16進数 だと、0 1 2 ... 9 a b c d e f
までの数字があって、10 11 ... 1a 1b ... 1f 20
となっていく。
0x
で始まると 16進数 で、0
で始まると 8進数 で、0b
で始まると 2進数 になる。
// 16進数
0xaf; // => 175
0xff762a; // => 16741930
// 8進数
051; // => 41
0176324; // => 64724
// 2進数
0b1001; // => 9
0b10001110; // => 142