Tips

【C言語で】#8 データ型の最大値、最小値【ビンゴを作ろう】

【C言語で】#8 データ型の最大値、最小値【ビンゴを作ろう】

C言語でBINGOを作ろう #8 データ型の最大値、最小値

C言語でBINGOを作ろう!

C言語でBINGOを作ろう!

CUI上で動くビンゴゲームの完成目指してひっそりとプログラムの勉強を始めました。前回は変数の型を紹介しました。今回は変数の型について、補足します。

もう8月になってしまったYO!!

サンプルがほしい方は#11から読んでください。

開発環境

開発環境はこちらをご覧ください。

また、C言語の開発環境を構築したい場合は以下を参考にしてください。

C言語環境構築前編

C言語環境構築後編

コマンドプロンプトからサクラエディタを起動できるようにしてみた前編

コマンドプロンプトからサクラエディタを起動できるようにしてみた後編

本記事は以上の設定を行っている前提で説明を行います。

 

BINGOの記事一覧はこちら

 

変数の取れる範囲

変数の取れる範囲

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_00.c)

最大値、最小値を調べるソースコード(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;
}

 

今日の宿題

夏休みなので今回は宿題無し!!やったね!!

 

※今までの復習をしておきましょう。

次回は配列を使ってみましょう。

 

BINGOの記事一覧はこちら

 

実践力が身につくC言語講座 連載リンク

競技プログラミングをイメージしたライブラリ活用講座
競技プログラミング風-標準Cライブラリ入門 連載

アルゴリズムをマスターして技術力アップ!
実践アルゴリズム講座 連載

パズルゲームの解析をテーマにしたC++講座
ゲーム解析プログラミング 連載

Recent News

Recent Tips

Tag Search