2011-07-26 145 views

回答

3

3是二进制11,1是二进制01

01 and 11 = 01 

和1 = 1

用于位运算符的参考见msdn

+0

感谢您的回答。那么如何确定一个二进制数是否将评估为001?例如,例如,这个表达式如何处理数字4?我是否必须对二进制数有透彻的理解才能理解这一点? –

+0

考虑到1的值可以表示为最终的0和1的无限序列。所有那些受任何位值(0或1)影响的零将总是给出0,因为“0和0 = 0”以及“0和1 = 0”。所以只有最后一点是重要的。如果你想确认,你可以进行彻底的测试,但是这一行代码有效地确定了这个数字是否是奇数。 –

+0

另一个例子:考虑小数点'204和170'。在二进制中,这是'11001100和10101010'。如果两个数都是1,那么得到1,如果其中任何一个为0,则得到0,所以得到10001000.在十进制中,这是88的结果。因此'204和170 = 88'。这就是像'And','Or','Xor'和'Not'这样的按位运算符的工作原理。 –

0

因为您在语句末尾赋值1。

+1

这是不正确的(参见marc的回答) –

0

And运算符执行布尔AND操作;如果将低位(1)设置为要比较的值(i),则该数字为奇数。

0

尝试这样:

Dim i As Integer = 3 
Dim IsOdd As Integer 
If (i And 1) Then 
    IsOdd = True 
Else 
    IsOdd = False 
End If 

希望它能帮助。

相关问题