當前位置:首頁 » 編程語言 » crc校驗c語言演算法

crc校驗c語言演算法

發布時間: 2025-05-14 04:15:15

c語言 編寫一個程序 求輸入一個數計算它的CRC值,

unsignedintcrc(unsignedchar*buf,unsignedcharlen)
{
chari;
unsignedintc_dat=0xffff;//有的CRC校驗這個值是0
for(;len>0;len--)//
{
c_dat^=*buf;
for(i=0;i<8;i++)
{
if((c_dat&0x1)==0x1)
{
c_dat>>=1;
c_dat^=0xa001;
}
else
{
c_dat>>=1;
}
}
buf++;
}
returnc_dat;
}

⑵ crc16校驗的c語言程序

unsigned short crc_dsp(unsigned short reg, unsigned char data_crc)
//reg為crc寄存器, data_crc為將要處理的8bit數據流
{
unsigned short msb; //crc寄存器將移出的最高1bit
unsigned short data;
unsigned short gx = 0x8005, i = 0; //i為左移次數, gx為生成多項式

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);
}

⑶ 請問:CRC是什麼意思

CRC意思是循環冗餘碼校驗。

校驗原理:(M-R)/G=Q+0/G

說明:以接收到的校驗碼除以約定的除數,若余數為0,則可認為接收到的數據是正確的。

例:有效信息1101,生成多項式樣1011

循環校驗碼解:

有效信息1101(k=4),即M(x)=x3+x2+x0,生成多項式1011(r+1=4,即r=3);

即G(x)=x3+x1+x0,M(x)·x3=x6+x5+x3,即1101000(對1101左移三位);

M(x)·x3/G(x)=1101000/1011=1111+001/1011即1010的CRC是:1101001。

(3)crc校驗c語言演算法擴展閱讀:

CRC碼集選擇的原則:

若設碼字長度為N,信息欄位為K位,校驗欄位為R位(N=K+R),則對於CRC碼集中的任一碼字,存在且僅存在一個R次多項式g(x),使得

V(x)=A(x)g(x)=xRm(x)+r(x);

其中:m(x)為K次信息多項式,r(x)為R-1次校驗多項式,

g(x)稱為生成多項式:

g(x)=g0+g1x+g2x2+。。。+g(R-1)x(R-1)+gRxR

發送方通過指定的g(x)產生CRC碼字,接收方則通過該g(x)來驗證收到的CRC碼字。

熱點內容
達內培訓php多少錢 發布:2025-05-14 07:19:10 瀏覽:25
python位元組轉字元串 發布:2025-05-14 07:06:35 瀏覽:421
subplotpython 發布:2025-05-14 06:53:51 瀏覽:661
豎屏大屏導航工廠密碼一般是多少 發布:2025-05-14 06:49:29 瀏覽:806
如何在手機里設置無線網密碼 發布:2025-05-14 06:47:54 瀏覽:120
動態ip文件伺服器 發布:2025-05-14 06:44:22 瀏覽:891
文字分行的腳本有什麼 發布:2025-05-14 06:33:10 瀏覽:288
svn小烏龜怎麼配置 發布:2025-05-14 06:31:43 瀏覽:393
視頻播放器android 發布:2025-05-14 06:31:43 瀏覽:720
android工作室 發布:2025-05-14 06:26:00 瀏覽:658