国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
CRC校驗(yàn)的C語言實(shí)現(xiàn)
如下內(nèi)容來自網(wǎng)絡(luò),剛好看到有人在談?wù)撨@個(gè)話題,數(shù)據(jù)的準(zhǔn)確應(yīng)該是通信中后期處理最重要的依據(jù):

CRC校驗(yàn)的C語言實(shí)現(xiàn) 
下面我們以CRC-16為例來說明任意長度數(shù)據(jù)流的CRC校驗(yàn)碼生成過程。我們采用將數(shù)據(jù)流分成若干個(gè)8bit字符,并由低字節(jié)到高字節(jié)傳送的并行方法來求CRC校驗(yàn)碼。具體計(jì)算過程為:用一個(gè)16bit的寄存器來存放CRC校驗(yàn)值,且設(shè)定其初值為0x0000;將數(shù)據(jù)流的第一個(gè)8bit與16bit的CRC寄存器的高字節(jié)相異或,并將結(jié)果存入CRC寄存器高字節(jié);CRC寄存器左移一位,最低1bit補(bǔ)零,同時(shí)檢查移出的最高1bit,若移出的最高1bit為0,則繼續(xù)按上述過程左移,若最高1bit為1,則將CRC寄存器中的值與生成多項(xiàng)式碼相異或,結(jié)果存入CRC寄存器值;繼續(xù)左移并重復(fù)上述處理方法,直到將8bit數(shù)據(jù)處理完為止,則此時(shí)CRC寄存器中的值就是第一個(gè)8bit數(shù)據(jù)對應(yīng)的CRC校驗(yàn)碼;然后將此時(shí)CRC寄存器的值作為初值,用同樣的處理方法重復(fù)上述步驟來處理下一個(gè)8bit數(shù)據(jù)流,直到將所有的8bit字符都處理完后,此刻CRC寄存器中的值即為整個(gè)數(shù)據(jù)流對應(yīng)的CRC校驗(yàn)碼。 
下面示出了其計(jì)算過程的流程圖: 

在用C語言編寫CRC校驗(yàn)碼的實(shí)現(xiàn)程序時(shí)我們應(yīng)該注意,生成多項(xiàng)式 對應(yīng)的十六進(jìn)制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時(shí)與 相異或,所以與16bit的CRC寄存器對應(yīng)的生成多項(xiàng)式的十六進(jìn)制數(shù)可用0x8005表示。下面給出并行處理8bit數(shù)據(jù)流的C源程序: 
unsigned short crc_dsp(unsigned short reg, unsigned char data_crc) 
//reg為crc寄存器, data_crc為將要處理的8bit數(shù)據(jù)流 

unsigned short msb; //crc寄存器將移出的最高1bit 
unsigned short data; 
unsigned short gx = 0x8005, i = 0; //i為左移次數(shù), gx為生成多項(xiàng)式 

data = (unsigned short)data_crc; 
data = data << 8; 
reg = reg ^ data; 
do 

msb = reg & 0x8000; 
reg = reg << 1; 
if(msb == 0x8000) 

reg = reg ^ gx; 

i++; 

while(i < 8); 
return (reg); 

以上為處理每一個(gè)8bit數(shù)據(jù)流的子程序,在計(jì)算整個(gè)數(shù)據(jù)流的CRC校驗(yàn)碼時(shí),我們只需將CRC_reg的初值置為0x0000,求第一個(gè)8bit的CRC值,之后,即可將上次求得的CRC值和本次將要處理的8bit數(shù)據(jù)作為函數(shù)實(shí)參傳遞給上述子程序的形參進(jìn)行處理即可,最終返回的reg值便是我們所想得到的整個(gè)數(shù)據(jù)流的CRC校驗(yàn)值。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CRC原理的理解與C語言
哪位大哥熟悉CRC16 CRC32,能幫掃掃盲么?
CRC從原理到實(shí)現(xiàn)
CRC原來是這么回事!
c語言CRC校驗(yàn)
Modbus CRC校驗(yàn)程序
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服