30 lines
859 B
Text
30 lines
859 B
Text
odule CheckIt {
|
|
crc32 = lambda ->{
|
|
Function PrepareTable {
|
|
buffer t as long * 256
|
|
For i = 0 To 255
|
|
k = i
|
|
For j = 0 To 7
|
|
If binary.and(k,1)=1 Then
|
|
k =binary.Xor(binary.shift(k, -1) , 0xEDB88320)
|
|
Else
|
|
k=binary.shift(k, -1)
|
|
End If
|
|
Next
|
|
Return t, i:=k
|
|
Next
|
|
=t
|
|
}
|
|
= lambda crctable=PrepareTable() (c, buf$) -> {
|
|
crc=0xFFFFFFFF-c
|
|
For i = 1 To Len(buf$)
|
|
crc = binary.xor(binary.shift(crc, -8), eval(crctable, binary.xor(binary.and(crc, 0xff), asc(mid$(buf$, i, 1)))))
|
|
Next i
|
|
=0xFFFFFFFF-crc
|
|
}
|
|
}() ' execute now
|
|
Print crc32(0, "The quick brown fox jumps over the lazy dog")=0x414fa339&
|
|
Print crc32(crc32(0, "The quick brown fox jumps"), " over the lazy dog")=0x414fa339&
|
|
Print crc32(crc32(crc32(0, "The qu"), "ick brown"), " fox jumps over the lazy dog")=0x414fa339&
|
|
}
|
|
CheckIt
|