vb高手帮帮我

来源:百度知道 编辑:UC知道 时间:2024/05/29 17:03:16
Private Declare Function GetLogicalDrives Lib "kernel32" () As Long

Public Function DriverCount() As Integer
Dim BitMask As Long
Dim i, j
BitMask = GetLogicalDrives()
For i = 0 To 24
If BitMask And 2 ^ i Then
j = j + 1
End If
Next
DriverCount = j
MsgBox j
End Function

其中If BitMask And 2 ^ i Then

是什么意思
如果bitmask是10111111 呢 请问位运算的结果是多少 谢谢了

2个数字相连的AND就不是条件"且"的意思了,而是数学运算"位与"

位与运算在2进制中是这样定义的:

0 AND 0 = 0
1 AND 0 = 0
0 AND 1 = 0
1 AND 1 = 1

非2进制运算在计算内部进行位与操作都是换成二进制然后逐个位相运算的...