关于循环冗余码具体是干嘛的,举个例子就可明白。
你要给远在他乡的好友送礼物,假设路上艰险重重,你怎么保证你的好友收到的礼物一定是你给他发送的原品呢?这时你想到了一个办法,在礼物中额外加点东西,针对这个新的礼物设计一种规则,使得你的好友用这套规则打开礼物后呈现你俩约定好的模样,如果能够实现那么就是原品,如果实现不了那么礼物就被动了手脚了。
话锋一转,怎么保证传送的比特不出差错?可以在比特中加点东西(新比特),这些新比特怎么来的?就是用那个余数加在原比特串的后面,然后接收方用这个新的比特串除以事先商量好的除数就可以知晓比特串到底有没有被动过手脚了。
问题的关键是怎么得到那个余数呢?有点小伙伴想,直接用原比特串除以除数嘛?但是这样不行呀,新比特既然加了余数进去,这个被除数也应该加点东西保证二者长度一致。如果除数n位,那就加n-1个0。好了,被除数、除数都知道,余数就可以得出了,这时候你偷偷把余数加在原比特串末尾,等你的好友用得到的比特串除以你俩约定好的除数,看是否结果为0就可以判断你发的比特串有没有被动过手脚啦。
以上属个人拙见,希望可以加深理解,温故而知新,记录下来是为了更好的学习,欢迎批评指正。