如果这是一个非常基本的逻辑问题,我很抱歉,但是我在一个例子中看到了一些代码而且我不理解逻辑结构,所以我希望有人可以向我解释。
在我的示例中,我只使用[Long]
作为任何Long数据类型对象的表示
示例如下:
注意:wHi,wLow,LoLo,HiLo,LoHI和HiHI都是长变量。
If (wHi And &H8000&) Then
MAKELONG = (((wHi And &H7FFF&) * 65536) Or (wLow And &HFFFF&)) Or &H80000000
Else
MAKELONG = LoLO Or (&H10000 * LoHI)
'MAKELONG = ((wHi * 65535) + wLow)
End If
我不确定此处测试的条件是什么:if [long] and [long] then
和if [long] or [long] then
我也不理解返回逻辑,例如:[LONG] = ([LONG] And [LONG]) or [LONG]
我尝试在即时窗口玩游戏,并没有对我有任何启发,因为我没有看到任何明显的模式:
?1 or 10
11
?2 or 10
10
?3 or 10
11
?4 or 10
14
? 1 and 10
0
?2 and 10
2
?3 and 10
2
?4 and 10
0
?5 and 10
0
答案 0 :(得分:1)
它有点掩盖。例如使用您的测试值:
?1 or 10 -> 11
00000001 = binary for 1
00001010 = binary for 10
OR --------
00001011 = binary for 11