新聞中心
誰有用C語言編寫的CRC-16校驗(yàn)形式的代碼~·高分求
在用C語言編寫CRC校驗(yàn)碼的實(shí)現(xiàn)程序時(shí)我們應(yīng)該注意,生成多項(xiàng)式 對(duì)應(yīng)的十六進(jìn)制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時(shí)與 相異或,所以與16bit的CRC寄存器對(duì)應(yīng)的生成多項(xiàng)式的十六進(jìn)制數(shù)可用0x8005表示。
我們提供的服務(wù)有:做網(wǎng)站、網(wǎng)站建設(shè)、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、沁縣ssl等。為上千家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的沁縣網(wǎng)站制作公司
你就是想要CRC8-CCITT的代碼,這個(gè)到處都是。http:// 我一直有CRC16,沒試過這個(gè),但應(yīng)該差不多。
4計(jì)算到最后一位時(shí)即為整個(gè)二進(jìn)制序列的余數(shù),即為CRC校驗(yàn)碼。該計(jì)算方法相當(dāng)于對(duì)每一位計(jì)算,運(yùn)算過程很容易理解,所占內(nèi)存少,缺點(diǎn)是一位一位計(jì)算比較耗時(shí)。
C語言中CRC循環(huán)校驗(yàn)的一個(gè)程序
1、當(dāng)i!=0時(shí),執(zhí)行循環(huán)體,然后i=i/2,即i值減半。
2、在用C語言編寫CRC校驗(yàn)碼的實(shí)現(xiàn)程序時(shí)我們應(yīng)該注意,生成多項(xiàng)式 對(duì)應(yīng)的十六進(jìn)制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時(shí)與 相異或,所以與16bit的CRC寄存器對(duì)應(yīng)的生成多項(xiàng)式的十六進(jìn)制數(shù)可用0x8005表示。
3、按位計(jì)算CRC采用CRC-CCITT多項(xiàng)式,多項(xiàng)式為0x11021,C語言編程時(shí),參與計(jì)算為0x1021。
4、樓主程序中調(diào)用函數(shù)cal_crc()的方式不正確。函數(shù)cal_crc()用于計(jì)算輸入串的校驗(yàn)碼,因此函數(shù)輸入?yún)?shù)包含輸入串及該串的長度。
crc16校驗(yàn)的c語言程序
1、在用C語言編寫CRC校驗(yàn)碼的實(shí)現(xiàn)程序時(shí)我們應(yīng)該注意,生成多項(xiàng)式 對(duì)應(yīng)的十六進(jìn)制數(shù)為0x18005,由于CRC寄存器左移過程中,移出的最高位為1時(shí)與 相異或,所以與16bit的CRC寄存器對(duì)應(yīng)的生成多項(xiàng)式的十六進(jìn)制數(shù)可用0x8005表示。
2、5.重復(fù)第3與第4步直到8次移位全部完成。此時(shí)一個(gè)8-bit數(shù)據(jù)處理完畢。6.重復(fù)第2至第5步直到所有數(shù)據(jù)全部處理完成。7.最終CRC寄存器的內(nèi)容即為CRC值。
3、4。同樣的二進(jìn)制數(shù),假定你定義有符號(hào)(signed)類型,則第一位表示的是正負(fù)號(hào),0代表正數(shù),1代表負(fù)數(shù);而如果定義無符號(hào)型(unsigned)的話,第一位為值了。如果用指數(shù)表示,float類型有效數(shù)字為6~7位。
4、CRC校驗(yàn)是循環(huán)冗余校驗(yàn),下面是C#的代碼。
5、按位計(jì)算CRC采用CRC-CCITT多項(xiàng)式,多項(xiàng)式為0x11021,C語言編程時(shí),參與計(jì)算為0x1021。
網(wǎng)頁標(biāo)題:c語言實(shí)現(xiàn)crc校驗(yàn)函數(shù) c語言實(shí)現(xiàn)crc16校驗(yàn)
新聞來源:http://fisionsoft.com.cn/article/dsjcpge.html