Software CRC

发布时间:2016-12-11 22:02:06 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Software CRC",主要涉及到Software CRC方面的内容,对于Software CRC感兴趣的同学可以参考一下。

http://www.bnuoj.com/bnuoj/contest_show.php?cid=2322#problem/25801 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define MOD 34943 using namespace std; char str[1030]; char ans[5]; int main() { while(gets(str), strcmp(str, "#")) { int i, length; long long remain = 0; length = strlen(str); if(length == 0) { printf("00 00\n"); continue; } for(i = 0; i < length; i ++) { remain = ((remain << 8) + str[i]) % MOD; } remain = (remain << 16) % MOD ; // 这里不能忘记还要一次右移再取余,因为只是加了最后一个字符取余,实际之前还有16位 remain = MOD - remain; strcpy(ans, "0000"); i = 3; while(remain > 0) { if(remain % 16 < 10) ans[i--] = remain % 16 + '0'; else ans[i--] = (remain % 16) - 10 + 'A'; remain >>= 4; } printf("%c%c %c%c\n", ans[0], ans[1], ans[2], ans[3]); //printf("%x %x\n", dis >> 8, dis % 256); //一开始还想直接这样输出的,结果显然不行 } return 0; }

上一篇:定期小总结
下一篇:Hibernate映射解析——七种映射关系(转来备忘)

相关文章

关键词: Software CRC

相关评论