我试图理解CRC,我对如何计算'除数'感到困惑。
在example on wikipedia中,除数为11(1011),输入为11010011101100
11010011101100 000 <--- input left shifted by 3 bits
1011 <--- divisor (4 bits) = x³+x+1
------------------
01100011101100 000 <--- result
如何计算除数?在这个例子中(x³+ x + 1)x是2? 2来自哪里?
答案 0 :(得分:2)
从同一个维基百科的“CRC的数学”部分开始,“这种类似分裂的过程的数学分析揭示了如何选择保证良好的错误检测属性的除数。”这是关键。有些除数比其他除数更好,所以你只需找到一个标准除数并通常使用它。
该页面的底部描述了一些使用的不同CRC和定义其除数的多项式。
答案 1 :(得分:1)
它写在下一句@wikipedia:
如果最左边的除数位上方的输入位为0,则不执行任何操作。如果最左边的除数位上方的输入位为1,则除数与输入进行异或。
这意味着:
1101 xor 1011 => 0110
答案 2 :(得分:-2)
二进制中的除数只是其多项式的系数。 x ^ 3 + x + 1 = 1 * x ^ 3 + 0 * x ^ 2 + 1 * x + 1 * 1;读掉cofficients得到1 0 1 1
maninder singh walia walia