久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: CRC8的疑惑,如何算出0x01=0x5E的? [打印本頁(yè)]

作者: vbahz    時(shí)間: 2008-11-25 14:02
標(biāo)題: CRC8的疑惑,如何算出0x01=0x5E的?
請(qǐng)問(wèn)哪位老大能詳細(xì)描述下 原碼 0x01 如何以CRC8,標(biāo)準(zhǔn)多項(xiàng)式 X8+X5+X4+1 手工計(jì)算,算出CRC碼 0x5E 的?
作者: admin    時(shí)間: 2016-4-7 03:54
循環(huán)冗余校驗(yàn)(CRC)算法入門(mén)引導(dǎo):http://m.zg4o1577.cn/bbs/dpj-47737-1.html
最通俗的CRC校驗(yàn)原理剖析:http://m.zg4o1577.cn/bbs/dpj-47736-1.html
CRC8校驗(yàn)分析:http://m.zg4o1577.cn/bbs/dpj-47738-1.html
作者: little4_su    時(shí)間: 2018-11-5 16:03
這個(gè)校驗(yàn)方法是屬于CRC-8/MAXIM,多項(xiàng)式就是提到的X8+X5+X4+1(簡(jiǎn)記31),CRC初值為0x00。其步驟如下所述:
1)初值CRC=0x00
2)CRC與待驗(yàn)數(shù)據(jù)異或并判斷最低位真假,若是真則執(zhí)行第3步,若是假執(zhí)行第4步
3)CRC與0x18異或再右移一位再與0x80按位或運(yùn)算,執(zhí)行第5步
4)CRC右移一位,執(zhí)行第5步
5)待驗(yàn)數(shù)據(jù)右移一位,執(zhí)行第6步
6)判斷第5步是否已經(jīng)執(zhí)行8次,若8次,本次計(jì)算結(jié)束,若沒(méi)夠8次,執(zhí)行第2步

這個(gè)步驟是對(duì)一個(gè)字節(jié)的校驗(yàn)。下面給出C的代碼,可對(duì)一串?dāng)?shù)據(jù)進(jìn)行校驗(yàn)。
#include <stdio.h>
#include <stdlib.h>
/*
函數(shù)名稱:get_crc
說(shuō)    明:對(duì)數(shù)據(jù)幀進(jìn)行CRC-8MAXIM校驗(yàn),多項(xiàng)式31(簡(jiǎn)記)
入    口:待校驗(yàn)數(shù)據(jù)字節(jié)地址msg,待校驗(yàn)數(shù)據(jù)個(gè)數(shù)msg_length
出    口:無(wú)
返    回:1個(gè)字節(jié)的CRC結(jié)果
*/
unsigned char get_crc(unsigned char *msg,unsigned char msg_length)
{
    unsigned char crc=0;//初值
    unsigned char data;//臨時(shí)數(shù)據(jù)變量
    while (msg_length--)//待校驗(yàn)數(shù)據(jù)數(shù)量
    {
        data = *msg++;//更新需要檢驗(yàn)的數(shù)據(jù)
        for (unsigned char i = 0;i < 8;i++)//一字節(jié)數(shù)據(jù)逐位校驗(yàn)
        {
            if((crc^(data))&0x01)
            {
                crc ^= 0x18;
                crc >>= 1;
                crc |= 0x80;
            }
            else
            {
                crc >>= 1;
            }
            data >>= 1;
        }
    }
    return crc;
}


int main()
{
    unsigned char crc = 0x01;
    crc = get_crc(&crc,1);
    printf("0x%02x\n",crc);//對(duì)0x01CRC8校驗(yàn),結(jié)果為0x5e
    system("pause");
    return 0;
}
手動(dòng)演算的你按照步驟來(lái),不會(huì)有錯(cuò)的。有錯(cuò)也是你不夠細(xì)心和沒(méi)有耐心。祝你好運(yùn)氣!
作者: kingyun888    時(shí)間: 2022-4-23 10:50
輸入的數(shù)據(jù)要反轉(zhuǎn),計(jì)算出的結(jié)果也要反轉(zhuǎn),多項(xiàng)式:X8+X5+X4+1中的X8只是表達(dá)時(shí)更簡(jiǎn)潔隱藏了,但不等于這一位不要。所有模式的多項(xiàng)式這一位都隱藏了,計(jì)算時(shí)一定要加上。
作者: 向日葵男人    時(shí)間: 2023-7-24 20:34
little4_su 發(fā)表于 2018-11-5 16:03
這個(gè)校驗(yàn)方法是屬于CRC-8/MAXIM,多項(xiàng)式就是提到的X8+X5+X4+1(簡(jiǎn)記31),CRC初值為0x00。其步驟如下所述: ...

感謝大佬的無(wú)私奉獻(xiàn)
作者: 電子輝    時(shí)間: 2023-7-26 09:06
little4_su 發(fā)表于 2018-11-5 16:03
這個(gè)校驗(yàn)方法是屬于CRC-8/MAXIM,多項(xiàng)式就是提到的X8+X5+X4+1(簡(jiǎn)記31),CRC初值為0x00。其步驟如下所述: ...

一直搞不明白crc效驗(yàn)原理,看了這個(gè)代碼才明白,原來(lái)是統(tǒng)計(jì)數(shù)據(jù)中1的個(gè)數(shù),




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲激情在线播放 | 一区二区三区四区精品 | 中日韩毛片 | 国产精品3| 亚洲成人精品 | 亚洲国产福利 | 能看的av网站 | 日韩三级中文字幕 | 人人澡人人爽 | 午夜快播 | 国产精品视频网站 | av影片在线观看 | 欧美一级片免费 | 日本黄色免费看 | 91小视频在线观看 | 亚洲精品乱码久久久久 | 日韩亚洲欧美在线 | 国产福利网 | 一区二区三区中文字幕 | 五月婷婷综合网 | 欧美国产精品 | 中文字幕久久精品 | 国产精品网站在线观看 | 亚洲国产成人精品女人 | 欧美日韩亚洲一区 | 国产剧情在线 | 欧美在线小视频 | 黄色免费视频网站 | 国语对白永久免费 | 国产激情视频在线 | av黄色在线 | 在线观看黄色av | 久久综合伊人77777蜜臀 | 毛片视频网站 | 91欧美日韩 | 久久精品视频一区二区 | 91手机看片 | 国产精品呻吟 | 久久不雅视频 | 日韩av手机在线观看 | 午夜国产一区 |