CRC计算输出

时间:2011-04-29 18:20:07

标签: c++ boost crc

0是循环冗余校验(CRC)的可能校验和吗?

我正在使用boost来计算CRC:

const unsigned int CrcPolynomial = 0x11021;
const unsigned short InitialValue = 0xffff;
boost::crc_optimal<16, CrcPolynomial, InitialValue, 0, true, true> Crc;
// process some bytes...
int x = Crc.checksum(); // <------ can this be 0?

1 个答案:

答案 0 :(得分:3)

是。接收任何消息x,并计算其CRC,crc(x)。然后crc(x . crc(x))将为0(其中.表示连接)。

实际上,这种关系可用于验证消息+ CRC是否已正确传输(例如参见http://en.wikipedia.org/wiki/Computation_of_CRC处的第二个动画图表)。