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