C言語でBINGOを作ろう #8 データ型の最大値、最小値
C言語でBINGOを作ろう!
C言語でBINGOを作ろう!
CUI上で動くビンゴゲームの完成目指してひっそりとプログラムの勉強を始めました。前回は変数の型を紹介しました。今回は変数の型について、補足します。
もう8月になってしまったYO!!
サンプルがほしい方は#11から読んでください。
開発環境
また、C言語の開発環境を構築したい場合は以下を参考にしてください。
コマンドプロンプトからサクラエディタを起動できるようにしてみた前編
コマンドプロンプトからサクラエディタを起動できるようにしてみた後編
本記事は以上の設定を行っている前提で説明を行います。
変数の取れる範囲
変数の取れる範囲
C言語のデータ型には以下のようなデータ型がありました。前回の表に加えて最大値と最小値(ともに筆者環境)を加えてあります。
なお、bit数やbyte数、最大値、最小値は筆者環境での値です。環境により異なることがあるので注意してください。
符号ありのデータ型(+-も考えるデータ型)
データ型 | 説明 | bit数 / byte数 | 最大値 | 最小値 |
---|---|---|---|---|
short int | 符号付整数を扱うデータ型 | 16bit / 2byte | 32767 | -32768 |
int | 符号付整数を扱うデータ型 | 32bit / 4byte | 2147483647 | -2147483648 |
long int | 符号付整数を扱うデータ型 | 32bit / 4byte | 2147483647 | -2147483648 |
long long int | 符号付整数を扱うデータ型 | 64bit / 8byte | 9223372036854775807 | -9223372036854775808 |
float | 単精度実数を扱うデータ型 | 32bit / 4byte | 3.402823 * (10の38乗) | (表現可能な最小の正の実数)1.175494 * (10の-38乗) |
(表現可能な最小の実数)-3.402823 * (10の38乗) | ||||
double | 倍精度実数を扱うデータ型 | 64bit / 8byte | 1.797693 * (10の308乗) | (表現可能な最小の正の実数)2.225074 * (10の-308乗) |
(表現可能な最小の実数)-1.797693 * (10の308乗) | ||||
char | 文字(1文字)を扱うデータ型 | 8bit / 1byte | 127 | -128 |
符号なしのデータ型(正の数のみを扱うデータ型)
データ型 | 説明 | bit数 / byte数 | 最大値 | 最小値 |
---|---|---|---|---|
unsigned short int | 符号なし整数を扱うデータ型 | 16bit / 2byte | 65535 | 0 |
unsigned int | 符号なし整数を扱うデータ型 | 32bit / 4byte | 4294967295 | 0 |
unsigned long int | 符号なし整数を扱うデータ型 | 32bit / 4byte | 4294967295 | 0 |
unsigned long long int | 符号なし整数を扱うデータ型 | 64bit / 8byte | 18446744073709551615 | 0 |
unsigned char | 符号なしで文字を扱うデータ型※C言語の内部では文字は整数として扱っているためunsigned char型も存在する。 | 8bit / 1byte | 255 | 0 |
各データ型のサイズを調べるソースコードと各データ型の最大値、最小値を調べるソースコードはこちら↓
最大値、最小値を調べるソースコード(sample07_01.c)
各データ型を利用する際の注意事項
float型
float型に値を代入する際は末尾にFかfを付けましょう。
float fl = 3.14f;
long int型
long int型に値を代入する場合はLかl(小文字のエルです)を付けましょう。※lは1や|と間違いやすいので、Lを使用することをお勧めします。
long int lo = 100L;
long long int型
long long int型に代入する場合はLLまたはll(エルエル)をつけましょう。※llだと見間違いやすいのでLLを使うことをお勧めします。
long long int lli = 100LL;
char型
char型については数値の代わりに利用可能ではありますが、最近の傾向としてchar型を数値として利用することは推奨されていないので注意してください。
おまけ
実数型を指数を使わずに表示すると
float型の最大値:約340澗(かん)
340282346638528860000000000000000000000
float型の正の数の最小値:
0.000000000000000000000000000000000000011754943508222875
double型の最大値:
179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
double型の正の数の最小値:
0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000022250738585072014
・・・もはや何だかわからない
変数の初期化について
変数の初期化について
以前も書きましたが、C言語では変数は初期化しないと何が入っているのかわりません。必ず初期化してから利用してください。
変数を使う際は以下の手順を守りましょう。
1.変数を作る
2.変数を初期化する
3.変数を使う
宿題コーナー
毎回恒例、みなさんお楽しみの宿題のコーナーです。
前回の宿題と解答例
long long int型の変数numlとfloat型の変数numfを用意してその内容を表示してみましょう。
解答は以下の通りです。
解答例
#include <stdio.h> int main(void){ long long int numl = 9876543210LL; float numf = 3.14f; printf("numl = %lld\n", numl); printf("numf = %f\n", numf); return 0; }
今日の宿題
夏休みなので今回は宿題無し!!やったね!!
※今までの復習をしておきましょう。
次回は配列を使ってみましょう。
実践力が身につくC言語講座 連載リンク
競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載
アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載
パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載