![Python筆記-CRC循環(huán)冗余校驗(yàn)的編程實(shí)現(xiàn)_第1頁](http://file4.renrendoc.com/view/7e3207740f34655984a3fc2065d76eba/7e3207740f34655984a3fc2065d76eba1.gif)
![Python筆記-CRC循環(huán)冗余校驗(yàn)的編程實(shí)現(xiàn)_第2頁](http://file4.renrendoc.com/view/7e3207740f34655984a3fc2065d76eba/7e3207740f34655984a3fc2065d76eba2.gif)
![Python筆記-CRC循環(huán)冗余校驗(yàn)的編程實(shí)現(xiàn)_第3頁](http://file4.renrendoc.com/view/7e3207740f34655984a3fc2065d76eba/7e3207740f34655984a3fc2065d76eba3.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Python循環(huán)冗余校驗(yàn)的編程實(shí)現(xiàn)章錄、介紹、算法思想在輸?shù)臅r(shí)候是直接輸?shù)某啥囗?xiàng)式,我們?cè)谟?jì)算CRC 校驗(yàn)碼的時(shí)候需要將成多項(xiàng)式轉(zhuǎn)換成對(duì)應(yīng)的進(jìn)制串。轉(zhuǎn)換的式如下圖( ,成多項(xiàng)式的 相當(dāng)于)X0 x4x4次1先將傳的數(shù)據(jù)進(jìn)寫轉(zhuǎn)換,以便之后的處理由于成多項(xiàng)式的最右側(cè)必定為1 ,所以定義個(gè)變量string 直接初始化為列表的最后個(gè)元素將列表的最后個(gè)元素刪除,并對(duì)列表進(jìn)逆序(1 )遍歷列表 lis如果 string 的長度和 X3 中的數(shù)字值相同時(shí),就表該位的進(jìn)制為1如果 string 遍歷到 X3 卻只有 1 位的長度時(shí),就說明當(dāng)前遍歷到了X0 的位置,但 X2 是不存在成多項(xiàng)式中的,所以需要使個(gè)循
2、環(huán)補(bǔ)全X2 位置 0 ,由于之后需要在當(dāng)前位置補(bǔ)1 ,則需要補(bǔ) 0 的個(gè)數(shù)為 len(lisi1)-len(string)-1#輸數(shù)據(jù)處理expression =expression.upper() #寫轉(zhuǎn)換lis =list(expression.split(+) #以加號(hào)為標(biāo)志進(jìn)分割#多項(xiàng)式末尾的數(shù)字1#進(jìn)制轉(zhuǎn)換if len(string)=int(1): #滿位數(shù)與變量的數(shù)字相同時(shí)for j in range(int(1)-len(string): #0補(bǔ)全相差的位數(shù)return string:-1則需要對(duì)輸?shù)臄?shù)據(jù)進(jìn)處理,添加較進(jìn)制串的部0 使得兩個(gè)進(jìn)制串位數(shù)相同。這樣在異或運(yùn)算時(shí),只需
3、要個(gè)循環(huán)同時(shí)遍歷這兩個(gè)字符串如果對(duì)應(yīng)的進(jìn)制不同時(shí),就為結(jié)果字符串result 的末尾添 1 ,否則添 0最后輸出的時(shí)候先遍歷結(jié)果result ,如果遇到第個(gè)有效數(shù)據(jù)時(shí),就將當(dāng)前位置及其之后的字符串以切的式進(jìn)返回。(0 )#輸數(shù)據(jù)處理if len(string1)len(string2): #若后者的位數(shù)不時(shí)for i in range(len(string1)-len(string2): #string2的位補(bǔ)0string2 =0 +string2# print(string1,string2)#異或計(jì)算result +=1else:result +=0# print(result)#輸出數(shù)
4、據(jù)處理for i in range(len(result): #消除異或結(jié)果中的效0if result=1: #找到第個(gè)有效數(shù)據(jù)時(shí)return result:return result在 CRC函數(shù)中,先使個(gè)新的變量bin_expression 保存成多項(xiàng)式轉(zhuǎn)換后的進(jìn)制串在計(jì)算時(shí)需要先在數(shù)據(jù)string 末尾添加指定個(gè)數(shù)的0 , 0 的個(gè)數(shù)等于多項(xiàng)式中的最次。由于在將多項(xiàng)式轉(zhuǎn)換為進(jìn)制時(shí)將會(huì)多出來位,所以添加0 的個(gè)數(shù)就是 len(bin_expression)-1然后遍歷進(jìn)制數(shù)據(jù)由于在校驗(yàn)碼成的過程中會(huì)刪除前置0 ,所以需要補(bǔ) 0 的操作( 0,保險(xiǎn)起見還是加了上去)#輸數(shù)據(jù)處理bin_exp
5、ression =TurnBin(expression) #轉(zhuǎn)換為進(jìn)制串for i in range(len(bin_expression)-1): #在進(jìn)制串末尾補(bǔ)0string +=0for i in range(len(string): #遍歷被除數(shù)進(jìn)制串crc +=stringif len(crc)=len(bin_expression): #當(dāng)位數(shù)夠異或計(jì)算時(shí)crc =(crc,bin_expression)# print(crc)#輸出數(shù)據(jù)處理if len(crc)len(bin_expression)-1: #crc位數(shù)過多時(shí)crc =crclen(crc)-len(bin_ex
6、pression)+1: #切,消除部多余的0return crc在檢驗(yàn) CRC的步驟使的是之前的CRC函數(shù)傳的成多項(xiàng)式同樣需要經(jīng)過進(jìn)制轉(zhuǎn)換,傳進(jìn)制串?dāng)?shù)據(jù)的末尾是對(duì)應(yīng)的校驗(yàn)碼。計(jì)算 CRC校驗(yàn)碼時(shí),切的范圍為0len(string)-len(bin_expression)+1 計(jì)算出來校驗(yàn)碼后,就將計(jì)算出來的crc 與原始數(shù)據(jù)的 right_crc 進(jìn)對(duì)如果兩個(gè)校驗(yàn)碼相同,則表數(shù)據(jù)傳輸正常。如果兩個(gè)校驗(yàn)碼不同,則表數(shù)據(jù)傳輸出錯(cuò)。def CheckCRC(string,expression): #檢測(cè)傳輸數(shù)據(jù)是否正確,并打印結(jié)果#輸數(shù)據(jù)處理bin_expression =TurnBin(expr
7、ession)right_crc =stringlen(string)-len(bin_expression)+1: #原數(shù)據(jù)末尾的crc校驗(yàn)碼#CRC計(jì)算crc =(string:len(string)-len(bin_expression)+1:,expression)if right_crccrc: #當(dāng)尾部的校驗(yàn)碼,與部數(shù)據(jù)成的校驗(yàn)碼致時(shí)print(.)print(,crc)print(,right_crc)剩下的代碼屬于主函數(shù)中界的設(shè)計(jì)部分,就不詳細(xì)介紹了三、代碼再變更進(jìn)制數(shù)據(jù)的某些位,并在數(shù)據(jù)末尾添加原本數(shù)據(jù)產(chǎn)的CRC校驗(yàn)碼進(jìn)檢測(cè)將原始數(shù)據(jù)添加上對(duì)應(yīng)的校驗(yàn)碼進(jìn)檢測(cè)CRC# 作者:狐
8、貍# 題:循環(huán)冗余校驗(yàn)def TurnBin(expression):#輸數(shù)據(jù)處理expression =expression.upper() #寫轉(zhuǎn)換lis =list(expression.split(+) #以加號(hào)為標(biāo)志進(jìn)分割#多項(xiàng)式末尾的數(shù)字1#進(jìn)制轉(zhuǎn)換for i in range(len():if len(string)=int(1): #滿位數(shù)與變量的數(shù)字相同時(shí)string +=1else:for j in range(int(1)-len(string): #0補(bǔ)全相差的位數(shù)1result =#輸數(shù)據(jù)處理if len(string1)len(string2): #若后者的位數(shù)不時(shí)
9、string2 =0 +string2# print(string1,string2)#異或計(jì)算#輸出數(shù)據(jù)處理for i in range(len(result): #消除異或結(jié)果中的效0if result=1: #找到第個(gè)有效數(shù)據(jù)時(shí)return result:#輸數(shù)據(jù)處理bin_expression =TurnBin(expression) #轉(zhuǎn)換為進(jìn)制串for i in range(len(bin_expression)-1): #在進(jìn)制串末尾補(bǔ)0string +=0for i in range(len(string): #遍歷被除數(shù)進(jìn)制串crc +=stringif len(crc)=l
10、en(bin_expression): #當(dāng)位數(shù)夠異或計(jì)算時(shí)crc =(crc,bin_expression)# print(crc)#輸出數(shù)據(jù)處理if len(crc)len(bin_expression)-1: #crc位數(shù)過多時(shí)crc =crclen(crc)-len(bin_expression)+1: #切,消除部多余的0return crcdef CheckCRC(string,expression): #檢測(cè)傳輸數(shù)據(jù)是否正確,并打印結(jié)果#輸數(shù)據(jù)處理bin_expression =TurnBin(expression)right_crc =stringlen(string)-len(bin_expression)+1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球自動(dòng)包餃子機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球丙烷氣體燃燒器行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球便攜式應(yīng)急電源發(fā)電機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國廢物回收分類機(jī)行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球X射線防護(hù)面罩行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球同軸微導(dǎo)管系統(tǒng)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國高電壓鈷酸鋰正極材料行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球水性涂布紙吸管行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球農(nóng)業(yè)機(jī)器自動(dòng)方向?qū)Ш皆O(shè)備行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球光學(xué)對(duì)準(zhǔn)服務(wù)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 醫(yī)院投訴糾紛及處理記錄表
- YY/T 0698.5-2023最終滅菌醫(yī)療器械包裝材料第5部分:透氣材料與塑料膜組成的可密封組合袋和卷材要求和試驗(yàn)方法
- 【深度教學(xué)研究國內(nèi)外文獻(xiàn)綜述2100字】
- 牽引管道孔壁與管道外壁之間注漿技術(shù)方案
- 新人教版四年級(jí)下冊(cè)數(shù)學(xué)教材解讀課件
- 竣工資料封面
- 膿毒血癥指南
- 中國航天知識(shí)
- 安徽華納化學(xué)工業(yè)有限公司年產(chǎn)1000噸均苯四甲酸二酐、300噸潤滑油助劑項(xiàng)目環(huán)境影響報(bào)告書
- YY 9706.230-2023醫(yī)用電氣設(shè)備第2-30部分:自動(dòng)無創(chuàng)血壓計(jì)的基本安全和基本性能專用要求
- 第8課紅樓春趣同步練習(xí)(含答案)
評(píng)論
0/150
提交評(píng)論