サイトマップ / 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言語講座−それ自体コンパイルできる教材を使った講座です−