首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算CRC-CCITT (XModem)

计算CRC-CCITT (XModem)
EN

Stack Overflow用户
提问于 2016-10-03 19:38:57
回答 1查看 706关注 0票数 0

我正在尝试实现一个CRC-CCITT (XModem)签入php,但没有成功。有人知道怎么做吗?我预期crc16('test')会返回0x9B06

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 01:36:58

以下是XMODEM 16位CRC的简单位级计算,用C表示:

代码语言:javascript
复制
#include <stdint.h>

unsigned crc16xmodem_bit(unsigned crc, void const *data, size_t len) {
    if (data == NULL)
        return 0;
    while (len--) {
        crc ^= (unsigned)(*(unsigned char const *)data++) << 8;
        for (unsigned k = 0; k < 8; k++)
            crc = crc & 0x8000 ? (crc << 1) ^ 0x1021 : crc << 1;
    }
    crc &= 0xffff;
    return crc;
}

这是由我的克拉卡尼软件生成的,它也为速度生成字节和字的版本.

这可以很容易地转换为php。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39839170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档