ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
プログラミング
その他

基本的な型

ここまでの解説の中で、int や bool といった「型」を詳しい説明抜きで使ってきましたが、この辺りで基本的な「型」について解説したいと思います。基本的な「型」は、大きく分けると「汎整数型」と「浮動小数点型」があります。文字列を表すのに使った std::string 型は、「基本的な」型ではありませんので、回を改めて詳しく解説したいと思います。

「汎整数型」というのは「整数」を表すための「型」です。「汎」というのが付いていますが、とりあえず気にする必要はありません。「整数」ですので、小数を表現することはできません。「汎整数型」には、さらに「符号付き」と「符号なし」の二種類があります。ここでいう「符号」というのは、プラス + かマイナス - かということです。ですから、「符号付き」の場合はマイナスの値を表現することができますが、「符号なし」の場合は 0 以上の値しか表現することができません。

「符号付き」の「汎整数型」には signed というキーワードを付けます。例えば、signed int といった具合です。それに対して、「符号なし」の「汎整数型」には unsigned というキーワードを付けます。unsigned int といった具合です。signed も unsigned もつけない場合は、「符号付き」とみなされます。ですから、これまでもよく登場した単なる int は、実は signed int のことだったのです。

「汎整数型」には、表現できる値の範囲に応じて、short, int, long があります。数学では、整数といえば -∞〜+∞ の範囲ですが、コンピュータは有限の値しか扱えませんので、必ず表現できる範囲というものが付いて回ります。MinGW の場合、それぞれの型の表現範囲は次の表のようになります。

型名 符号付き 符号なし
short -32768〜+32767 0〜65535
int -2147483648〜+2147483647 0〜4294967295
long -2147483648〜+2147483647 0〜4294967295

「汎整数型」には、short, int, long の「符号付き」と「符号なし」のほかに、「真理値型」と「文字型」があります。「真理値型」というのは、「条件」のところで解説した bool 型のことで、true と false の二種類の値しか表現することができません。それでも、true は 1、false は 0 という整数値でもあるので、「汎整数型」の一種とみなされるわけです。

「文字型」には、大きく分けると、普通の「文字型」と「ワイド文字型」の二種類があります。普通の「文字型」は、英語のアルファベットと数字、そしてコンマやピリオドなどの記号を表すには十分なのですが、日本語の漢字などを表現しようとすると表現範囲が足りなくなります。「ワイド文字型」は、その名の通り表現範囲が広いので、漢字なども十分表現することができます。

普通の「文字型」には、char, signed char, unsigned char の三種類があります。他の「汎整数型」とは違って、char 型と signed char 型は異なる型になるので注意してください。なお、一重引用符でくくられた 'A' のような文字の値(「文字定数」といいます)は、char 型になります。これに対して、「ワイド文字型」は wchar_t 型だけです。wchar_t には signed も unsigned も付きません。「ワイド文字型」の定数は、「文字定数」の前に大文字の L を付けて、L'漢' のように書きます。MinGW における「文字型」の表現範囲は次の表の通りです。

型名 表現範囲
char -128〜+127
signed char -128〜+127
unsigned char 0〜255
wchar_t 0〜65535

ところで、MinGW では「ワイド文字型」のサポートが十分ではありません。使えることは使えるのですが、画面への表示などがちょっと手間です。そこで、当分の間、日本語の使用は控えて、英語だけで画面に表示させるようなソースコードばかり紹介することになると思いますが、ご了承ください。

以上で「汎整数型」の解説は終わりです。次は「浮動小数点型」についての解説を行います。「浮動小数点型」というと小難しい言い方ですが、要するに「実数」を表現するための「型」です。小数や非常に大きな数を表すには「浮動小数点型」を使う必要があります。

「浮動小数点型」も、「汎整数型」と同様、有限の範囲しか扱うことができませんので、その表現範囲に応じて、float, double, long double という三種類の「型」があります。「浮動小数点型」には「符号付き」とか「符号なし」といった区別はなく、どれでもマイナスの値を表現することができます。数値を書く際に、小数点を付けるか指数部を書けば、その値は「浮動小数点型」になります。指数部は、e または E を使って、1e5 のように書き、これは 1×105 を意味します。MinGW における各「浮動小数点型」の表現範囲は次の表の通りです。

型名 表現範囲(絶対値)
float 1.17549e-38〜3.40282e+38
double 2.22507e-308〜1.79769e+308
long double 3.3621e-4932〜1.18973e+4932

上の表で示す表現範囲は絶対値です。つまり、float 型であれば、プラスの値は 1.17549e-38〜3.40282e+38 の範囲で表現でき、マイナスの値も -1.17549e-38〜-3.40282e+38 の範囲で表現できるという意味です。もちろん 0 も表現することができます。

C++には、これら基本の型(「基本型」といいます)に関して、諸々の細かい仕様があるのですが、一度に解説すると消化し切れませんので、今回はこれぐらいにしておきます。

プリンタ出力用画面
前のページ
for文による繰返し
コンテンツのトップ


 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa