サイトマップ / C言語講座出入り口総目次目次:関数>ブーリアン型

青い直線

ブーリアン型

青い直線

[srand( )とrand( )]←このソース→[文字の内部表現]

/* ブーリアン型 */

/* 今日はブーリアン(Boolean)型(bool型)の値を返す関数について学びます。新しい英単語を作る時、語尾に-anを付けると、人とかものという意味になります。例えば、玉子のとがった方の端を”little endian”、丸い方の端を”big endian”というのがこれに当たります。”little endian”と”big endian”という言葉は、コンピュータと密接な関係にあります。”little endian”は 最下位ビットLSB(Least Significant Bit)から、データを格納転送する方法です。

    例:FF00 が 00 FF とメモリに入る

”big endian”は 最上位ビットMSB(Most Significant Bit)から、データを格納転送する方法です。

    例:FF00 が FF 00 とメモリに入る

ちなみに-inを付けると化学物質となります。例えば”aspirin”とか”insulin”がこれに当たります。

ブーリアンの語源について説明します。ジョージ・ブールGeorge・Boole(1815〜1864)はイギリスの数学者で、ブール代数(Boolean algebra)を創始した人です。コンピュータと2進数は密接な関係にありますが、ブール代数と2進数も密接な関係にあります。ブーリアン(Boolean)とは、ブールのもの(式)という意味です。真(true)か偽(false)のどちらかの値を持つ式のことです。

ブール代数では、真は1偽は0ですが、コンピュータの場合は、真は0以外偽は0と理解して下さい。

ソースプログラムの説明

今日は整数をキーボードから入力すると、偶数(even)ならTRUEを、奇数(odd)ならFALSEを返す関数、IsEven( )を作ります。整数どうしの割り算の結果を整数型の変数に代入すると、割り算で余りが出た時は余りは捨てられます。変数に割った数を掛けると、もとの数が偶数ならもとの数と等しくなり、奇数なら小さくなります。この原理を使って作製します。

コンパイラによっては、'Boolean'をサポートしていないものもあるので、プリプロセッサのコマンド'#ifndef'と'#endif'を使って、正常に動作するようにしています。FALSE*/

/* ここからソースプログラム */

#include <stdio.h>

#ifndef Boolean         /* Boolean が定義されていなかったら */
#define Boolean int
#endif

#ifndef TRUE            /* TRUE が定義されていなかったら */
#define TRUE 1
#endif

#ifndef FALSE           /* FALSE が定義されていなかったら */
#define FALSE 0
#endif

Boolean IsEven(int n);
void main(void);

  /* 偶数なら TRUE を奇数なら FALSE を返す */
Boolean IsEven(int n)
{
    int m;

    m = n / 2;        /* n が奇数なら余りが出て */
                      /* 余りは捨てられて m に代入される */

    if (m * 2 == n)        /* n が偶数の時のみ成り立つ */
        return (TRUE);
    else
        return (FALSE);
}

void main(void)
{
    int n;

    printf("整数を入力して下さい ");
    scanf("%d", &n);

    if (IsEven(n) == TRUE)                          /* TRUE が返ってきたら */
        printf("\nその数は偶数です。\n");
    else                                            /* それ以外は */
        printf("\nその数は奇数です。\n");
}

/* ここまでソースプログラム */

[srand( )とrand( )]←このソース→[文字の内部表現]

青い直線

/* (C) 2000- YFプロ. All Rights Reserved. */    提供:C言語講座−それ自体コンパイルできる教材を使った講座です−

青い直線

サイトマップ / C言語講座出入り口総目次目次:関数>ブーリアン型