True和False是VB内部声明的两个常量,但它们实际上是个整型数(Integer),其中True的值是-1,False的值是0,为什么呢?我们来看看这两个数的二进制形式:
True(-1):1111111111111111
False(0):0000000000000000
可以看出这两个数在每一位(bit)的值都是相反的,因此它们是真正意义上的“相反数”,用来表示“非此即彼”、“非对即错”、“非真即假”等等的逻辑值是再合适不过了。
而“非零为真,零为假”则在任何情况下都是成立的,因为当把数值转换为布尔值时,必然要把数字分成两类(否则的话多于两种的其他类属于真还是假呢?),这时候按“零”和“非零”来分类则是最合适的了。
boolean转换成数值时是true=-1, false=0
数值转换成boolean时是非0为true,0为false