UVa 128 Software CRC

Posted on 2013-06-17 16:33 happyac 阅读(1245) 评论(0)  编辑 收藏 引用 所属分类: uva

总结

大数的余数问题。

分析

除数为大数的求法:
int mod = 0;
char ch;
while (c = getchar())
    mod = (mod*10 + ch-'0') % b
其中 b 为被除数。即利用余数的性质从最高位逐个读入。
而题中 CRC 的求法是一个字节一个字节的算,所以对上面的程序小加修改:
mod = ((mod<<8) + ch-'0') % b

陷阱

CRC 校验码是算在除数中的。所以处理完输入文本,要重复2次上面的操作,以空出 CRC 校验码的位置。

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理