check_crc32.bas
来自「Per gli interessati ai metodi della comp」· BAS 代码 · 共 40 行
BAS
40 行
Attribute VB_Name = "Check_CRC32"
Option Explicit
'This module calculates the CRC32-checksum of a certain bytestream
Dim CrcTableInit As Boolean
Dim CRCTable(0 To 255) As Long
Public Function calcCRC32(ByteArray() As Byte) As Long
Dim I As Long
Dim crc As Long
If CrcTableInit = False Then Call Init_CRCTable
crc = -1
For I = 0 To UBound(ByteArray) - 1
crc = (((crc And &HFFFFFF00) \ &H100) And &HFFFFFF) Xor (CRCTable((crc And &HFF) Xor ByteArray(I)))
Next I
crc = crc Xor &HFFFFFFFF
calcCRC32 = crc
End Function
Private Sub Init_CRCTable()
Dim I As Long
Dim J As Long
Dim Limit As Long
Dim crc As Long
Limit = &HEDB88320
For I = 0 To 255
crc = I
For J = 0 To 7
If crc And 1 Then
crc = (((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF) Xor Limit
Else
crc = ((crc And &HFFFFFFFE) \ 2) And &H7FFFFFFF
End If
Next J
CRCTable(I) = crc
Next I
CrcTableInit = True
End Sub
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?