栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将C CRC16转换为Java CRC16

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将C CRC16转换为Java CRC16

在这种情况下,java和c之间的主要区别是在c中您使用无符号数字,而Java只有符号数字。尽管您可以使用带符号的数字实现相同的算法,但您必须意识到以下事实:在移位操作中会带走符号位,这需要额外的“与”。

这是我的实现:

static int crc16(final byte[] buffer) {    int crc = 0xFFFF;    for (int j = 0; j < buffer.length ; j++) {        crc = ((crc  >>> 8) | (crc  << 8) )& 0xffff;        crc ^= (buffer[j] & 0xff);//byte to int, trunc sign        crc ^= ((crc & 0xff) >> 4);        crc ^= (crc << 12) & 0xffff;        crc ^= ((crc & 0xFF) << 5) & 0xffff;    }    crc &= 0xffff;    return crc;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/497020.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号