Vb6 将两个数求和为布尔数?

Vb6 将两个数求和为布尔数?,vb6,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) 如果你有严格的选择权,你就不会遇到这个问题。它会告诉您,将整数转换为布尔值是一个问题。但是如果没有它,VB会将所有内容转换为True,除了0是false

谁能给我解释一下两个数的和是如何得到布尔值的?为什么
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)

如果你有严格的选择权,你就不会遇到这个问题。它会告诉您,将整数转换为布尔值是一个问题。但是如果没有它,VB会将所有内容转换为True,除了0是false

    Console.WriteLine(CBool(-2)) ' True
    Console.WriteLine(CBool(-1)) ' True
    Console.WriteLine(CBool(0)) ' False
    Console.WriteLine(CBool(1)) ' True
    Console.WriteLine(CBool(2)) ' True
    Console.WriteLine(CBool(3)) ' True
3和1=1,然后将其转换为真值

请参见。当操作数是数字而不是布尔值时,
执行按位的
,而不是像操作数是布尔值时那样执行严格的逻辑

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

它对i和j进行位and运算,然后转换为布尔值-非零为真

1和3->01和11二进制->01,这是非零的,因此为真

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

vb6是。不是c#或vb.NET这必须是vb.NET。VB 6中没有Console.WriteLine。