我现在有这样的一组数据要做CRC的校验算法,不知道应该怎么做,64 01 00 10 01 09 68 01 02 44 F3 ?? ??;从64到F3的需要算CRC校验算法的数据,?? ??为CRC校验的值,请应该怎么做这个程序,请给出例子,谢谢!分不够可以加分,只要能解决问题就行.
解决方案 »
- ReadProcessMemory 返回0 错误码998 内存分配访问无效
- 无法绑定到控件
- 终于绕过了smtp直接将邮件发送给收件人但发现对网易服务器无效
- 怎麼同時編輯多條記錄,怎麼同時存儲修改的多條數據
- 请教一个问题,请各位师兄务必要回答噢 :) 谢谢了~~~~
- 除了按 f1 键,还有什么办法调出帮助文件?
- 很烦的combo box
- 你能说出你工作干得好的秘诀吗?
- 求助 关于VB中 错误代码为48的 问题
- 寻求兼职PDA开发高手,开发无线点菜系统,后台数据库MS SQLSERVER 2000,PDA操作系统pocket pc 2003..
- spy++得不到的控件句柄
- VB 引用C# TLB问题
Function CRC16(data() As Byte) As String
Dim CRC16Lo As Byte, CRC16Hi As Byte 'CRC寄存器
Dim CL As Byte, CH As Byte '多项式码&HA001
Dim SaveHi As Byte, SaveLo As Byte
Dim i As Integer
Dim Flag As Integer
CRC16Lo = &HFF
CRC16Hi = &HFF
CL = &H1
CH = &HA0
For i = 0 To UBound(data)
CRC16Lo = CRC16Lo Xor data(i) '每一个数据与CRC寄存器进行异或
For Flag = 0 To 7
SaveHi = CRC16Hi
SaveLo = CRC16Lo
CRC16Hi = CRC16Hi \ 2 '高位右移一位
CRC16Lo = CRC16Lo \ 2 '低位右移一位
If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1
CRC16Lo = CRC16Lo Or &H80 '则低位字节右移后前面补1
End If '否则自动补0
If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或
CRC16Hi = CRC16Hi Xor CH
CRC16Lo = CRC16Lo Xor CL
End If
Next Flag
Next i
Dim ReturnData(1) As Byte
ReturnData(0) = CRC16Hi 'CRC高位
ReturnData(1) = CRC16Lo 'CRC低位
CRC16 = ReturnData
End Function