アマプログラマーの独り言


TrueとFalseの値

2002年01月06日
Boolean型にはTrueかFalseの2つどちらかしか代入できない。
しかしBoolean型だろうが文字列型だろうがなんだろうが、コンピュータというのは「数値」しか扱えないのである。
Boolean型の値を取得しようとしたら、文字列TrueとかFalseと返ってくるのはご存知だろう。
しかしそれは「文字列」として取得したから、文字列になっただけなので、VBは別に文字列で「Trueだ」と判断しているわけではない。

そこで。
TrueとFalseの「真の値」を調べてみることにした。
大体予想はつくのだが・・・。
実験コードはこんな感じだ。

Debug.Print Hex$(True)
Debug.Print Hex$(False)

こんだけ。
Hex関数を使っているのは、文字列型として取得するのを防ぐ為と、型のサイズも調べるため。

結果。

FFFF
0


ふむ。
予想通りだった。
順序よく解説していこう。

まずTrueといのは整数でいうと65536になる。Falseは0だ。
VBのデフォルトの型のサイズというのは2バイト(16ビット)なので、そのビットに全て1を立てたのがTrueとなり、逆に全て0にしたのがFalseというのが結果だ。

ちなみにこれはプログラマの常識だというのを、どこぞの超巨大掲示板の書き込みで見かけた。
ちなみに演算ではなく、Trueの値で引き算や足し算をする場合には気をつけよう。
Integer型では-1となり、Long型では65536で計算してしまうからだ。