VB 进行32位 CRC校验 如何定义无符号LONG型变量 或则有什么变通方式?
各位大神,本人从事嵌入式软件开发,工作中用到了VB开发一个小工具,需要进行32位CRC校验,苦于VB无法定义无符号类型,希望各位大神经验,小弟不胜感激!C语言有实现,需要在VB 中实现。。。
u32 User_Make_crc32(u32 crc, u8* buf, u32 len)
程序代码:Public Function 左移1位(x As Long) As Long
Dim y As Long
y = x And &H40000000 '保存次高位
x = x And &H3FFFFFFF '最高和次高位置0
x = x * 2 '左移1位 '最高位和次高位置0是防止这步溢出
'移几位是相当于乘 2^(N-1)
If y > 0 Then '次高位需要变到最高位去,只有二种情况,一种=0,一种=&H40000000
x = x Or &H80000000
End If
左移1位 = x
End Function
Public Function 右移1位(x As Long) As Long
Dim y As Long
y = x And &H80000000 '保存最高位
If y < 0 Then 'X为负数,运算前要把符号位干掉
x = x And &H7FFFFFFF
End If
x = Int(x / 2) '没去测试不使用int函数会不会正确。调用函数开销很大。
If y < 0 Then '最高位不为零,则放到次高位上去
x = x Or &H40000000
End If
右移1位 = x
End Function
