CRC16循环冗余校验VB

代码

Dim Data(6) As Integer
Dim a As Long
Dim crc_reg As Long
Function crc16(Data, length)
Dim i, j As Integer

Dim b As Long
b = &HA001
i = 0
crc_reg = &HFFFF
Do While length > 0
    crc_reg = (crc_reg Xor Data(i))
    If crc_reg < 0 Then
     crc_reg = 65536 + crc_reg
    End If
    i = i + 1
    length = length - 1
    For j = 0 To 7 Step 1
        
        If (crc_reg And 1) Then
            crc_reg = (((crc_reg \ 2) Xor b) And &HFFFF)
            'crc_reg = crc_reg ^ b
        Else
            crc_reg = (crc_reg \ 2) And &HFFFF
        End If
        If (crc_reg < 0) Then
            crc_reg = 65536 + crc_reg
        End If
     Next j
Loop
End Function

Private Sub Form_Load()

Data(0) = &H64
Data(1) = &H6
Data(2) = &H0
Data(3) = &HD
Data(4) = &H4
Data(5) = &H4C
 a = crc16(Data, 6)
MsgBox (crc_reg)
End Sub

运行

修改代码

Private Sub Form_Load()

Data(0) = &H64
Data(1) = &H3
Data(2) = &H0
Data(3) = &H0
Data(4) = &H0
Data(5) = &H1
 a = crc16(Data, 6)
MsgBox (crc_reg)
End Sub

运行


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值