标题:求大神帮忙把 C 程序转化为 VB 程序
取消只看楼主
潜龙_在渊
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-11-29
 问题点数:0 回复次数:2 
求大神帮忙把 C 程序转化为 VB 程序
uint16_t CrcCheck(uint8_t *msg,unsigned int len) //CRC16D£Ñéoˉêy
{
    unsigned int i,j;
    uint16_t  crc = 0;
    uint16_t  current;
   
    for(i=0;i<len;i++)
    {
   current = msg[i]<<8;
     for(j=0;j<8;j++)
     {
       if((int16_t)(crc^current)<0)
             crc = (crc<<1)^0x1021;
         else
             crc<<=1;
         current<<=1;
     }
    }
 return crc;   
}
求大神帮帮忙,这是一个CRC校验的函数麻烦帮忙转出VB程序,我自己按照VB的编程方式试过了不过还是不行
搜索更多相关主题的帖子: current return 
2014-11-29 11:37
潜龙_在渊
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-11-29
得分:0 
'自定义公有CRC-16/XMODEM函数
    Private Function CRC16(ByVal data() As Byte) As UShort
        Dim crc As UShort = 0       'CRC寄存器
        Dim current As UShort
        Dim i As Integer
        Dim j As Integer

        For i = 0 To UBound(data) - 2 '循环0-数组-2个数据
            current = data(i) * 256 '数据左移8位
            For j = 0 To 7 '循环0-7次
                If ((crc Xor current) And &H8000) > 0 Then '判断数据是否为负数
                    crc = ((crc And &H7FFF) * 2) Xor &H1021 '数据进行异或运算
                Else
                    crc = (crc And &H7FFF) * 2 '否则左移1位
                End If
                current = (current And &H7FFF) * 2 '数组数据左移1位
            Next j
        Next i
        CRC16 = crc '返回CRC校验码
    End Function
2014-12-01 09:19
潜龙_在渊
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-11-29
得分:0 
我自己结贴吧!因为我已经把它搞出来可以用了,有需要的可以参考参考
2014-12-01 09:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-439332-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.195435 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved