アマプログラマーの独り言
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で計算してしまうからだ。 |