求JAVA版CRC 16 位 0x11021校验死活不通过,已吐血

applebomb 2017-07-18 11:37:37
CCITT 推荐的 16 位的 x16+x12+x5+1( 0x11021)低字节在前

测试数据流
01014b0100324b0000000102ff04030001
要求CRC16校验结果是
14ee

我试了不下10种JAVA版CRC16的测试代码就是通不过,别随便抓一个就贴上来,看我的测试数据
...全文
422 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
applebomb 2017-07-20
  • 打赏
  • 举报
回复
引用 2 楼 pany1209 的回复:
[quote=引用 1 楼 applebomb的回复:]我真想把对方的工程师抓来暴打一顿,他给的测试例子CRC数据是错的!害得我白忙活了一下午!还以为JAVA各种不兼容! 幸好还有一份老长的数据敲了我半天使用其它校验可以通过!
爆他菊花再说,不能忍。。。[/quote] 帮我看看,为啥我把高低位分开来处理后数据就变了?6be8=>6ae8 public class T { public static void main(String[] args) throws Exception{ byte[] data = Hex.decodeHex("6be8".toCharArray()); int value = (short)(((data[data.length - 1]) << 0) + ((data[data.length - 2]) << 8)); System.out.format("%x", value); //<--输出6ae8 } }
李德胜1995 2017-07-19
  • 打赏
  • 举报
回复
引用 1 楼 applebomb的回复:
我真想把对方的工程师抓来暴打一顿,他给的测试例子CRC数据是错的!害得我白忙活了一下午!还以为JAVA各种不兼容! 幸好还有一份老长的数据敲了我半天使用其它校验可以通过!
爆他菊花再说,不能忍。。。
applebomb 2017-07-19
  • 打赏
  • 举报
回复
我真想把对方的工程师抓来暴打一顿,他给的测试例子CRC数据是错的!害得我白忙活了一下午!还以为JAVA各种不兼容! 幸好还有一份老长的数据敲了我半天使用其它校验可以通过!

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧