这段段代码是我在网上看到一个关于md5加密的问题,我想把这个加密算法转换成c#的。但有些vbs代码看不太懂。
我黑体字部分感到疑问代码如下:
一般我们使用逻辑运算符的两边不都是布尔值吗?为什么这个里面可以是lX8 = lX And &H80000000 我感觉 &H80000000 明显不是布尔值,那为什么可以拿lx与它进行判断? 那个&H80000000到底是个什么东西。
Private Function AddUnsigned(lX, lY)
Dim lX4
Dim lY4
Dim lX8
Dim lY8
Dim lResult
lX8 = lX And &H80000000
lY8 = lY And &H80000000
lX4 = lX And &H40000000
lY4 = lY And &H40000000
lResult = (lX And &H3FFFFFFF) + (lY And &H3FFFFFFF)
If lX4 And lY4 Then
lResult = lResult Xor &H80000000 Xor lX8 Xor lY8
ElseIf lX4 Or lY4 Then
If lResult And &H40000000 Then
lResult = lResult Xor &HC0000000 Xor lX8 Xor lY8
Else
lResult = lResult Xor &H40000000 Xor lX8 Xor lY8
End If
Else
lResult = lResult Xor lX8 Xor lY8
End If
AddUnsigned = lResult
End Function