Not演算子は何をしているのか
Not演算子は何をしているのか
Boolean型の式の判定
もともと、
If isHoge = True Then fooBar
みたいな書き方をする方だった。
If isHoge Then fooBar
みたいな書き方が、何か大切なことを省略しているような気がしてイヤだったのだ。
ところが、あるときthomさんのブログを読んで、
そういや、(hoge > fuga) = True なんていちいち書かないよなー
と、己の行動の矛盾に気がついて以来、IfとかDo Whileなんかの条件式部分にTrue / Falseは書かない派になった。
Not演算子の正体
したがって、上の例でたとえば、
If isHoge = False Then fooBar
としたいようなときには、
If Not isHoge Then fooBar
と書くことになる。
で、このNotの正体を調べてみた。
イミディエイトにいろいろ打ち込んで調べてみると、
こんな感じ。
要するに、
-
Not hoge
は、-1 - hoge
のことらしい -
Not True
は、-1 - (-1)
のことなのでFalse(0)になる -
Not False
は、-1 - 0
のことなのでTrue(-1)になる
ということらしい。
おわりに
はたして、この推理は正しいのだろうか……。
どの道、よく考えられているなあ。