擅长:python、mysql、java
<p>一些背景,为那些到达这个问题,想知道附加crc。你知道吗</p>
<p>如果一个CRC被适当地<em>附加到它是CRC的消息中,并且在消息或CRC中没有引入错误,那么整个事物的CRC将是一个<em>常数</em>仅依赖于该CRC的定义。你知道吗</p>
<p>要正确地附加CRC,需要注意位顺序。对于<code>crcmod</code>提供的一般CRC定义,如果<code>rev</code>为假,则必须首先附加最重要的位。如果<code>rev</code>为真,则必须首先将位附加到最低有效位。对于面向字节的消息,这意味着首先CRC的宽度必须是8位的倍数(顺便说一下,这是<code>crcmod</code>所允许的),并且CRC必须分别以大端顺序或小端顺序追加。你知道吗</p>
<p>根据CRC的定义,得到的<em>常数</em>并不总是零。如果CRC的<code>xorOut</code>值为零,则它<em>为</em>零。否则,常数是<em>n</em>零位的CRC,其中<em>n</em>是CRC的宽度,并且提供的初始CRC值是零(<em>不是</em><code>initCrc</code>)。例如,对于标准CRC-32,以小端顺序附加CRC-32的消息的CRC-32总是<code>0x2144df1c</code>。你知道吗</p>
<p>对于这个特殊的问题,CRC是按大端顺序追加的,所以<code>31 c3</code>,结果消息的CRC+CRC是零。你知道吗</p>