📄 module1.bas
字号:
Attribute VB_Name = "Module1"
Public gethh As Variant, getll As Variant
Public kk(16) As Variant
Public Function callkk()
Open "mmtemp" For Binary As #1
Dim kkh As Variant
Dim kkl As Variant
Get #1, , kkh
Get #1, , kkl
Close #1
'MsgBox (kkh)
'MsgBox (kkl)
Dim hibit As Byte, lowbit As Byte
If (kkh >= 2 ^ 31) Then
hibit = 1
kkh = kkh - 2 ^ 31
Else
hibit = 0
End If
If (kkl >= 2 ^ 31) Then
lowbit = 1
kkl = kkl - 2 ^ 31
Else
hibit = 0
End If
Dim c0 As Long, d0 As Long
c0 = Int((kkl Mod (2 ^ 29)) / 2 ^ 28) * (2 ^ 0) + Int((kkl Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 1) _
+ Int((kkl Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 2) + Int((kkl Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 3) _
+ Int((kkh Mod (2 ^ 30)) / 2 ^ 29) * (2 ^ 4) + Int((kkh Mod (2 ^ 22)) / 2 ^ 21) * (2 ^ 5) _
+ Int((kkh Mod (2 ^ 14)) / 2 ^ 13) * (2 ^ 6) + Int((kkh Mod (2 ^ 6)) / 2 ^ 5) * (2 ^ 7) _
+ Int((kkl Mod (2 ^ 30)) / 2 ^ 29) * (2 ^ 8) + Int((kkl Mod (2 ^ 22)) / 2 ^ 21) * (2 ^ 9) _
+ Int((kkl Mod (2 ^ 14)) / 2 ^ 13) * (2 ^ 10) + Int((kkl Mod (2 ^ 6)) / 2 ^ 5) * (2 ^ 11) _
+ Int(kkh / 2 ^ 30) * (2 ^ 12) + Int((kkh Mod (2 ^ 23)) / 2 ^ 22) * (2 ^ 13) _
+ Int((kkh Mod (2 ^ 15)) / 2 ^ 14) * (2 ^ 14) + Int((kkh Mod (2 ^ 7)) / 2 ^ 6) * (2 ^ 15) _
+ Int(kkl / 2 ^ 30) * (2 ^ 16) + Int((kkl Mod (2 ^ 23)) / 2 ^ 22) * (2 ^ 17) _
+ Int((kkl Mod (2 ^ 15)) / 2 ^ 14) * (2 ^ 18) + Int((kkl Mod (2 ^ 7)) / 2 ^ 6) * (2 ^ 19) _
+ hibit * (2 ^ 20) + Int((kkh Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 21) _
+ Int((kkh Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 22) + Int((kkh Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 23) _
+ lowbit * (2 ^ 24) + Int((kkl Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 25) _
+ Int((kkl Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 26) + Int((kkl Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 27)
d0 = Int((kkh Mod (2 ^ 29)) / 2 ^ 28) * (2 ^ 0) + Int((kkh Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 1) _
+ Int((kkh Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 2) + Int((kkh Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 3) _
+ Int((kkh Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 4) + Int((kkh Mod (2 ^ 20)) / 2 ^ 19) * (2 ^ 5) _
+ Int((kkh Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 6) + Int((kkh Mod (2 ^ 4)) / 2 ^ 3) * (2 ^ 7) _
+ Int((kkl Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 8) + Int((kkl Mod (2 ^ 20)) / 2 ^ 19) * (2 ^ 9) _
+ Int((kkl Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 10) + Int((kkl Mod (2 ^ 4)) / 2 ^ 3) * (2 ^ 11) _
+ Int((kkh Mod (2 ^ 27)) / 2 ^ 26) * (2 ^ 12) + Int((kkh Mod (2 ^ 19)) / 2 ^ 18) * (2 ^ 13) _
+ Int((kkh Mod (2 ^ 11)) / 2 ^ 10) * (2 ^ 14) + Int((kkh Mod (2 ^ 3)) / 2 ^ 2) * (2 ^ 15) _
+ Int((kkl Mod (2 ^ 27)) / 2 ^ 26) * (2 ^ 16) + Int((kkl Mod (2 ^ 19)) / 2 ^ 18) * (2 ^ 17) _
+ Int((kkl Mod (2 ^ 11)) / 2 ^ 10) * (2 ^ 18) + Int((kkl Mod (2 ^ 3)) / 2 ^ 2) * (2 ^ 19) _
+ Int((kkh Mod (2 ^ 26)) / 2 ^ 25) * (2 ^ 20) + Int((kkh Mod (2 ^ 18)) / 2 ^ 17) * (2 ^ 21) _
+ Int((kkh Mod (2 ^ 10)) / 2 ^ 9) * (2 ^ 22) + Int((kkh Mod (2 ^ 2)) / 2 ^ 1) * (2 ^ 23) _
+ Int((kkl Mod (2 ^ 26)) / 2 ^ 25) * (2 ^ 24) + Int((kkl Mod (2 ^ 18)) / 2 ^ 17) * (2 ^ 25) _
+ Int((kkl Mod (2 ^ 10)) / 2 ^ 9) * (2 ^ 26) + Int((kkl Mod (2 ^ 2)) / 2 ^ 1) * (2 ^ 27)
c0 = bitleft(c0)
d0 = bitleft(d0)
kk(1) = pc2(c0, d0)
c0 = bitleft(c0)
d0 = bitleft(d0)
kk(2) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(3) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(4) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(5) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(6) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(7) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(8) = pc2(c0, d0)
c0 = bitleft(c0)
d0 = bitleft(d0)
kk(9) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(10) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(11) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(12) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(13) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(14) = pc2(c0, d0)
c0 = bitleft(c0)
c0 = bitleft(c0)
d0 = bitleft(d0)
d0 = bitleft(d0)
kk(15) = pc2(c0, d0)
c0 = bitleft(c0)
d0 = bitleft(d0)
kk(16) = pc2(c0, d0)
End Function
Function bitleft(ByVal lval As Long) As Long
If lval >= 2 ^ 27 Then
bitleft = (lval Mod (2 ^ 27)) * 2 + 1 '最高位为1
Else
bitleft = lval * 2
End If
End Function
Function pc2(ByVal c2h As Long, ByVal c2l As Long)
pc2 = Int((c2l Mod (2 ^ 25)) / 2 ^ 24) * (2 ^ 0) + Int((c2l Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 1) _
+ Int((c2l Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 2) + Int((c2l Mod (2 ^ 7)) / 2 ^ 6) * (2 ^ 3) _
+ Int((c2l Mod (2 ^ 15)) / 2 ^ 14) * (2 ^ 4) + Int((c2l Mod (2 ^ 11)) / 2 ^ 10) * (2 ^ 5) _
+ Int((c2l Mod (2 ^ 4)) / 2 ^ 3) * (2 ^ 6) + Int((c2l Mod (2 ^ 23)) / 2 ^ 22) * (2 ^ 7) _
+ Int((c2l Mod (2 ^ 1)) / 2 ^ 0) * (2 ^ 8) + Int((c2l Mod (2 ^ 18)) / 2 ^ 17) * (2 ^ 9) _
+ Int((c2l Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 10) + Int((c2l Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 11) _
+ Int((c2l Mod (2 ^ 9)) / 2 ^ 8) * (2 ^ 12) + Int((c2l Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 13) _
+ Int((c2l Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 14) + Int((c2l Mod (2 ^ 6)) / 2 ^ 5) * (2 ^ 15) _
+ Int((c2l Mod (2 ^ 17)) / 2 ^ 16) * (2 ^ 16) + Int((c2l Mod (2 ^ 27)) / 2 ^ 26) * (2 ^ 17) _
+ Int((c2l Mod (2 ^ 2)) / 2 ^ 1) * (2 ^ 18) + Int((c2l Mod (2 ^ 10)) / 2 ^ 9) * (2 ^ 19) _
+ Int((c2l Mod (2 ^ 20)) / 2 ^ 19) * (2 ^ 20) + Int((c2l Mod (2 ^ 26)) / 2 ^ 25) * (2 ^ 21) _
+ Int((c2l Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 22) + Int((c2l Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 23) _
+ Int((c2h Mod (2 ^ 27)) / 2 ^ 26) * (2 ^ 24) + Int((c2h Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 25) _
+ Int((c2h Mod (2 ^ 9)) / 2 ^ 8) * (2 ^ 26) + Int((c2h Mod (2 ^ 2)) / 2 ^ 1) * (2 ^ 27) _
+ Int((c2h Mod (2 ^ 22)) / 2 ^ 21) * (2 ^ 28) + Int((c2h Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 29) _
+ Int((c2h Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 30) + Int((c2h Mod (2 ^ 3)) / 2 ^ 2) * (2 ^ 31) _
+ Int((c2h Mod (2 ^ 25)) / 2 ^ 24) * (2 ^ 32) + Int((c2h Mod (2 ^ 17)) / 2 ^ 16) * (2 ^ 33) _
+ Int((c2h Mod (2 ^ 10)) / 2 ^ 9) * (2 ^ 34) + Int((c2h Mod (2 ^ 6)) / 2 ^ 5) * (2 ^ 35) _
+ Int((c2h Mod (2 ^ 19)) / 2 ^ 18) * (2 ^ 36) + Int((c2h Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 37) _
+ Int((c2h Mod (2 ^ 23)) / 2 ^ 22) * (2 ^ 38) + Int((c2h Mod (2 ^ 14)) / 2 ^ 13) * (2 ^ 39) _
+ Int((c2h Mod (2 ^ 1)) / 2 ^ 0) * (2 ^ 40) + Int((c2h Mod (2 ^ 26)) / 2 ^ 25) * (2 ^ 41) _
+ Int((c2h Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 42) + Int((c2h Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 43) _
+ Int((c2h Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 44) + Int((c2h Mod (2 ^ 18)) / 2 ^ 17) * (2 ^ 45) _
+ Int((c2h Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 46) + Int((c2h Mod (2 ^ 15)) / 2 ^ 14) * (2 ^ 47)
End Function
Public Function ff(ByVal valr0 As Variant, ByVal valkk As Variant) As Variant
Dim eval As Variant
Dim evalh As Long, evall As Long, valkkh As Long, valkkl As Long
Dim hibit As Byte
If (valr0 >= 2 ^ 31) Then
hibit = 1
valr0 = valr0 - 2 ^ 31
Else
hibit = 0
End If
eval = hibit * (2 ^ 0) + Int((valr0 Mod (2 ^ 1)) / 2 ^ 0) * (2 ^ 1) _
+ Int((valr0 Mod (2 ^ 2)) / 2 ^ 1) * (2 ^ 2) + Int((valr0 Mod (2 ^ 3)) / 2 ^ 2) * (2 ^ 3) _
+ Int((valr0 Mod (2 ^ 4)) / 2 ^ 3) * (2 ^ 4) + Int((valr0 Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 5) _
+ Int((valr0 Mod (2 ^ 4)) / 2 ^ 3) * (2 ^ 6) + Int((valr0 Mod (2 ^ 5)) / 2 ^ 4) * (2 ^ 7) _
+ Int((valr0 Mod (2 ^ 6)) / 2 ^ 5) * (2 ^ 8) + Int((valr0 Mod (2 ^ 7)) / 2 ^ 6) * (2 ^ 9) _
+ Int((valr0 Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 10) + Int((valr0 Mod (2 ^ 9)) / 2 ^ 8) * (2 ^ 11) _
+ Int((valr0 Mod (2 ^ 8)) / 2 ^ 7) * (2 ^ 12) + Int((valr0 Mod (2 ^ 9)) / 2 ^ 8) * (2 ^ 13) _
+ Int((valr0 Mod (2 ^ 10)) / 2 ^ 9) * (2 ^ 14) + Int((valr0 Mod (2 ^ 11)) / 2 ^ 10) * (2 ^ 15) _
+ Int((valr0 Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 16) + Int((valr0 Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 17) _
+ Int((valr0 Mod (2 ^ 12)) / 2 ^ 11) * (2 ^ 18) + Int((valr0 Mod (2 ^ 13)) / 2 ^ 12) * (2 ^ 19) _
+ Int((valr0 Mod (2 ^ 14)) / 2 ^ 13) * (2 ^ 20) + Int((valr0 Mod (2 ^ 15)) / 2 ^ 14) * (2 ^ 21) _
+ Int((valr0 Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 22) + Int((valr0 Mod (2 ^ 17)) / 2 ^ 16) * (2 ^ 23) _
+ Int((valr0 Mod (2 ^ 16)) / 2 ^ 15) * (2 ^ 24) + Int((valr0 Mod (2 ^ 17)) / 2 ^ 16) * (2 ^ 25) _
+ Int((valr0 Mod (2 ^ 18)) / 2 ^ 17) * (2 ^ 26) + Int((valr0 Mod (2 ^ 19)) / 2 ^ 18) * (2 ^ 27) _
+ Int((valr0 Mod (2 ^ 20)) / 2 ^ 19) * (2 ^ 28) + Int((valr0 Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 29) _
+ Int((valr0 Mod (2 ^ 20)) / 2 ^ 19) * (2 ^ 30) + Int((valr0 Mod (2 ^ 21)) / 2 ^ 20) * (2 ^ 31) _
+ Int((valr0 Mod (2 ^ 22)) / 2 ^ 21) * (2 ^ 32) + Int((valr0 Mod (2 ^ 23)) / 2 ^ 22) * (2 ^ 33) _
+ Int((valr0 Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 34) + Int((valr0 Mod (2 ^ 25)) / 2 ^ 24) * (2 ^ 35) _
+ Int((valr0 Mod (2 ^ 24)) / 2 ^ 23) * (2 ^ 36) + Int((valr0 Mod (2 ^ 25)) / 2 ^ 24) * (2 ^ 37) _
+ Int((valr0 Mod (2 ^ 26)) / 2 ^ 25) * (2 ^ 38) + Int((valr0 Mod (2 ^ 27)) / 2 ^ 26) * (2 ^ 39) _
+ Int((valr0 Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 40) + Int((valr0 Mod (2 ^ 29)) / 2 ^ 28) * (2 ^ 41) _
+ Int((valr0 Mod (2 ^ 28)) / 2 ^ 27) * (2 ^ 42) + Int((valr0 Mod (2 ^ 29)) / 2 ^ 28) * (2 ^ 43) _
+ Int((valr0 Mod (2 ^ 30)) / 2 ^ 29) * (2 ^ 44) + Int(valr0 / 2 ^ 30) * (2 ^ 45) _
+ hibit * (2 ^ 46) + Int((valr0 Mod (2 ^ 1)) / 2 ^ 0) * (2 ^ 47)
evalh = Int(eval / 2 ^ 24)
evall = eval - evalh * (2 ^ 24)
valkkh = Int(valkk / 2 ^ 24)
valkkl = valkk - valkkh * (2 ^ 24)
evalh = evalh Xor valkkh
evall = evall Xor valkkl
Dim s(8) As Integer
s(1) = Int(evalh / 2 ^ 18)
s(2) = (evalh And ((2 ^ 12) * 63)) / (2 ^ 12)
s(3) = (evalh And ((2 ^ 6) * 63)) / (2 ^ 6)
s(4) = evalh And 63
s(5) = Int(evall / 2 ^ 18)
s(6) = (evall And ((2 ^ 12) * 63)) / (2 ^ 12)
s(7) = (evall And ((2 ^ 6) * 63)) / (2 ^ 6)
s(8) = evall And 63
Dim rr As Byte, hh As Byte
rr = (s(1) And 1) + Int(s(1) / 2 ^ 5) * 2
hh = (s(1) And 30) / 2
If ((rr = 1 And hh = 0) Or (rr = 3 And hh = 13) Or (rr = 0 And hh = 14) Or (rr = 2 And hh = 15)) Then
s(1) = 0
ElseIf ((rr = 2 And hh = 1) Or (rr = 3 And hh = 6) Or (rr = 1 And hh = 7) Or (rr = 0 And hh = 3)) Then
s(1) = 1
ElseIf ((rr = 3 And hh = 3) Or (rr = 1 And hh = 5) Or (rr = 2 And hh = 6) Or (rr = 0 And hh = 4)) Then
s(1) = 2
ElseIf ((rr = 0 And hh = 8) Or (rr = 3 And hh = 10) Or (rr = 2 And hh = 12) Or (rr = 1 And hh = 14)) Then
s(1) = 3
ElseIf ((rr = 2 And hh = 0) Or (rr = 1 And hh = 3) Or (rr = 0 And hh = 1) Or (rr = 3 And hh = 4)) Then
s(1) = 4
ElseIf ((rr = 3 And hh = 8) Or (rr = 0 And hh = 12) Or (rr = 1 And hh = 13) Or (rr = 2 And hh = 14)) Then
s(1) = 5
ElseIf ((rr = 2 And hh = 5) Or (rr = 1 And hh = 9) Or (rr = 0 And hh = 10) Or (rr = 3 And hh = 14)) Then
s(1) = 6
ElseIf ((rr = 1 And hh = 2) Or (rr = 3 And hh = 7) Or (rr = 2 And hh = 11) Or (rr = 0 And hh = 15)) Then
s(1) = 7
ElseIf ((rr = 2 And hh = 3) Or (rr = 0 And hh = 7) Or (rr = 3 And hh = 2) Or (rr = 1 And hh = 15)) Then
s(1) = 8
ElseIf ((rr = 3 And hh = 5) Or (rr = 2 And hh = 10) Or (rr = 1 And hh = 12) Or (rr = 0 And hh = 13)) Then
s(1) = 9
ElseIf ((rr = 1 And hh = 8) Or (rr = 0 And hh = 9) Or (rr = 3 And hh = 12) Or (rr = 2 And hh = 13)) Then
s(1) = 10
ElseIf ((rr = 0 And hh = 6) Or (rr = 2 And hh = 7) Or (rr = 3 And hh = 9) Or (rr = 1 And hh = 11)) Then
s(1) = 11
ElseIf ((rr = 3 And hh = 1) Or (rr = 2 And hh = 9) Or (rr = 1 And hh = 10) Or (rr = 0 And hh = 11)) Then
s(1) = 12
ElseIf ((rr = 0 And hh = 2) Or (rr = 2 And hh = 4) Or (rr = 1 And hh = 6) Or (rr = 3 And hh = 15)) Then
s(1) = 13
ElseIf ((rr = 0 And hh = 0) Or (rr = 2 And hh = 2) Or (rr = 1 And hh = 4) Or (rr = 3 And hh = 11)) Then
s(1) = 14
ElseIf ((rr = 3 And hh = 0) Or (rr = 1 And hh = 1) Or (rr = 0 And hh = 5) Or (rr = 2 And hh = 8)) Then
s(1) = 15
End If
rr = (s(2) And 1) + Int(s(2) / 2 ^ 5) * 2
hh = (s(2) And 30) / 2
If ((rr = 2 And hh = 0) Or (rr = 1 And hh = 9) Or (rr = 3 And hh = 12) Or (rr = 0 And hh = 13)) Then
s(2) = 0
ElseIf ((rr = 3 And hh = 3) Or (rr = 2 And hh = 7) Or (rr = 0 And hh = 1) Or (rr = 1 And hh = 10)) Then
s(2) = 1
ElseIf ((rr = 1 And hh = 5) Or (rr = 3 And hh = 7) Or (rr = 0 And hh = 10) Or (rr = 2 And hh = 14)) Then
s(2) = 2
ElseIf ((rr = 1 And hh = 0) Or (rr = 3 And hh = 4) Or (rr = 0 And hh = 6) Or (rr = 2 And hh = 13)) Then
s(2) = 3
ElseIf ((rr = 1 And hh = 2) Or (rr = 2 And hh = 5) Or (rr = 3 And hh = 6) Or (rr = 0 And hh = 7)) Then
s(2) = 4
ElseIf ((rr = 2 And hh = 8) Or (rr = 3 And hh = 13) Or (rr = 0 And hh = 14) Or (rr = 1 And hh = 15)) Then
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -