C/C++のデータ型と書式を知る:基本的なデータ型
C/C++のデータ型と書式の基礎をおさえておこう。
基本的なデータ型
C/C++における基本的な4つのデータ型を紹介しよう。値の範囲やバイト数はMinGW(gcc 3.4.5)の場合で示す。これらはchar型、int型などのようにいうこともある。
char:文字型
文字型といっても、実際は1バイト分の-128から127までの数値を表すことができるデータ型だ。unsigned charと記述される場合は0から255までを扱うことになる。そのため文字コード用の型と捉えたほうが良いかもしれない。
文字コードを扱うにしては、数値の範囲が狭いように思うかもしれない。C言語が誕生した当時は半角英数字と記号および改行などの制御コードのみを含むASCIIコードさえ表現できればよかったからだ。
そうはいっても、日本語文字を含む文字コードは、それよりはるかに大きな値を扱うことになるため、複数バイトで文字コードが表現される文字を「ワイド文字」とし、wchar_tという型で表すこともある。
int:整数型
1, 23など小数点がつかない数値を表す。言語処理系によって2バイトもしくは4バイト分の数値を扱える。2バイト分なら-32768から32767まで、4バイト分なら-2147483648から2147483647までとなる。ワイド文字用のwint_tというデータ型もある。
intの前に修飾子を添えると、以下のような型を派生させることができる。
- unsigned int
- 0以上の整数(0から65535)
- short int
- intと同程度かそれ以下の範囲のみ扱える。shortだけでも同じ。(-32768から32767)
- unsigned short int
- short intを0以上のみ表せるようにしたもの(0から65535)
- long int
- 扱える範囲がintより広い。longだけでも同じ(-2147483648から2147483647)
- unsigned long int
- long intを0以上のみ表せるようにしたもの(0から4294967295)
float 符号付き単精度浮動小数点型(4バイト分)
double 符号付き倍精度浮動小数点型(8バイト分)
どちらも1.2, 34.5など小数点付きの数値を扱うデータ型だが、floatよりもdoubleのほうが扱える数値の範囲が広くなる。そのため、floatよりもdoubleのほうが精密な値を表すことが可能になる。
しかし、それほどの精密さを要求されないのであれば、floatを使うほうが良いかもしれない。ただ、関数を利用するときなど、開発者が意識しなくても自動的にfloatからdoubleに変換されていることがよくあるので、その手間を省きたいのであれば、最初からdoubleを用いるほうが良いだろう。
また、doubleからはlong double(12バイト分)を派生させることができるが、floatではそれができないという違いがある。
書式との関連
書式とは、データを入出力する際のデータの並び方をいうが、C/C++の場合は、書式とデータ型とが密接に関連している。次回はこの書式について紹介したい。
- 特集: C/C++のイロハ:メモリ管理からオブジェクト指向まで (15件)
- 今日のトップ記事
- 3日前
- 4日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
ユーザーにとっては、UIがすべて
モジラ、「Firefox 3.1」の第2アルファ版を公開
Google Chromeに携わったキラ星のような開発者たち:コミックから読み解く
Google ChromeのCSS 3対応状況
Google Chromeのユーザーインタフェース:IE・Operaとの類似を考える
フォトレポート:Google Chromeを支えるブレーンたち、ローンチイベントで集合
Appleの「JailBreak」に対する考えを推理する
Oracle VM Templatesを活用する
iPhoneがそれでもJailBreakできる理由
Firefoxの必携アドオン10選
ITエンジニアの幸せな未来とは:ワークとライフは対立しない
フォトレポート:「iPhone」アプリで暇つぶし--CNET記者が「これで1日過ごしました」
APC SOLUTIONS FORUM 2008をレポート
サーバ仮想化・グリーン化の利点を最大化!
ログ管理ソリューション特集
Techno Exchange
ZDNet Japan Green IT
セキュリティ対策レベルテスト公開!
KDDI「SaaSソリューション」
「シンプル」&「低コスト」な運用管理
Webセキュリティ特集
ZDNet Japan ホスティング特集