求助LUA的位操作来实现CRC16算法

实现C的CRC16_buypass模式函数,求LUA代码,谢谢。

u16 calcCRC16_buypass(const u8 *data, u32 length)
{
    #define POLYNOMIAL 0x8005     
     
    u16 crc = 0x0000;
    u32 j;
    u8 i;
    for (j=length; j>0; j--) {
    crc ^= (u16)(*data++) << 8;
    for (i=0; i<8; i++) {
        if (crc & 0x8000) crc = (crc<<1) ^ POLYNOMIAL;
        else crc <<= 1;
        }
    }
    return (crc);
}

请先 登录 后评论

2 个回答

技术销售Wendal - 软件工程师
擅长:软件开发

https://github.com/AIE-Guild/GreenWall/blob/master/Lib/CRC16-CCITT.lua

请先 登录 后评论
踏歌

你好,请问你是怎么实现的?

请先 登录 后评论
  • 0 关注
  • 0 收藏,4081 浏览
  • charde 提出于 2018-10-07 12:56

相似问题