CRC计算举例
我想确认一下我是否正确理解了CRC计算的概念。我将提供两个示例,第一个是使用正常减法计算余数,第二个使用这种奇怪的 XOR 东西。
数据位:D = 1010101010。
生成器位:G = 10001。
1) 计算余数的减法方法:
10101010100000
10001|||||||||
-----|||||||||
10001|||||||
10001|||||||
-----|||||||
000000100000
10001
-----
1111
R = 1111。
2) 异或方法:
10101010100000
10001|||||||||
-----|||||||||
10001|||||||
10001|||||||
-----|||||||
00000010000|
10001|
------
000010
R = 0010。
I'd like to confirm whether I grasped the concept of CRC calculations correctly. I'll provide two examples, the first is calculating the remainder using normal subtraction, the second uses this weird XOR stuff.
Data bits: D = 1010101010.
Generator bits: G = 10001.
1) Subtraction approach to calculate remainder:
10101010100000
10001|||||||||
-----|||||||||
10001|||||||
10001|||||||
-----|||||||
000000100000
10001
-----
1111
R = 1111.
2) XOR approach:
10101010100000
10001|||||||||
-----|||||||||
10001|||||||
10001|||||||
-----|||||||
00000010000|
10001|
------
000010
R = 0010.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在末尾附加 1111 并不能满足需要,因为
。
请注意,根据定义,除法应该是模除法,因为它基于模数学。
Appending 1111 at the end does not satisfy the need since
.
Note that as per the definition, the division should be modulo division as it is based upon modulo mathematics.
两个答案都是正确的。 =)
(重新检查第一个答案:
10101010100000(二进制)mod 10001(二进制)
= 10912(十进制)mod 17(十进制)
= 15(十进制)
= 1111(二进制)。)
Both answers are correct. =)
(To recheck the first answer:
10101010100000 (binary) mod 10001 (binary)
= 10912 (decimal) mod 17 (decimal)
= 15 (decimal)
= 1111 (binary).)
减法做错了。在二进制模数中,减法、加法、除法和乘法是相同的。所以,异或是正确的。
Subtraction is wrongly done. In binary modulo, subtraction, addition, division, and multiplication are the same. So, XOR is correct.