将两个数字分成一个布尔值?

时间:2017-09-26 14:13:22

标签: vb6

有人可以向我解释如何在这里使用两个数字和一个布尔值?为什么j=3返回true但j=2返回false?

dim jak as Boolean
dim i as Integer
dim j as Integer

i = 1
j = 3
jak = j And i
Console.WriteLine("Hello, world!" & jak)

3 个答案:

答案 0 :(得分:3)

enter image description here。当操作数是数字而不是布尔值时,AND执行按位AND,而不是严格逻辑1 = 0 0 0 0 0 0 0 1 2 = 0 0 0 0 0 0 1 0 3 = 0 0 0 0 0 0 1 1 1 AND 2 = 0 0 0 0 0 0 0 0 = FALSE, when converted to boolean 1 AND 3 = 0 0 0 0 0 0 0 1 = TRUE, when converted to boolean ,就像操作数是布尔值时一样。

sc

答案 1 :(得分:2)

如果您有Option Strict On,则不会出现此问题。它会告诉你将整数转换为布尔值是一个问题。但是没有它,VB将所有内容转换为True,除了0,这是假的。

AND

3和1 = 1然后转换为True

答案 2 :(得分:0)

它正在做一个按位 - 和i和j然后转换为布尔值 - 非零是真的。

1和3 - > 01和11二进制 - > 01因此非零,

1和2 - > 01和10二进制 - > 00因此为零