在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > CRC位域單表查表及建表方法

            CRC位域單表查表及建表方法

            作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
            對(duì)于左移CRC16,權(quán)值XX,表格為(左移位域4取列表16個(gè)):
            CRCL16_Col[16]={CRC[0x0000],CRC[0x0001],CRC[0x0002],...CRC[0x000D],CRC[0x000E],CRC[0x000F]};
            左移CRC16查表核心程序?yàn)?大端存儲(chǔ)模式):
            unsigned int GetCRCL16(unsigned int crcinit, unsigned int crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC16時(shí)入口需要對(duì)crcval做處理)
            unsigned int i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 4;i ++)//2個(gè)字節(jié)位域4需要4次完成
            {
            crc = (crc << 4) ^ CRCL16_Col[((crc ^ crcval) >> 12) & 0x0F];//位域?qū)?單表16個(gè)字節(jié)
            crcval <<= 4;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于右移CRC16,權(quán)值XX,表格為(右移位域4取行表16個(gè)):
            CRCR16_Row[16]={CRC[0x0000],CRC[0x1000],CRC[0x2000],...CRC[0xD000],CRC[0xE000],CRC[0xF000]};
            右移CRC16查表核心程序?yàn)?小端存儲(chǔ)模式):
            unsigned int GetCRCR16(unsigned int crcinit, unsigned int crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC16時(shí)入口需要對(duì)crcval做處理)
            unsigned int i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 4;i ++)//2個(gè)字節(jié)位域4需要4次完成
            {
            crc = (crc >> 4) ^ CRCR16_Row[(crc ^ crcval) & 0x0F];//位域?qū)?單表16個(gè)字節(jié)
            crcval >>= 4;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于左移CRC32,權(quán)值XX,表格為(左移位域4取列表16個(gè)):
            CRCL32_Col[16]={CRC[0x00000000],CRC[0x00000001],...CRC[0x0000000E],CRC[0x0000000F]};
            左移CRC32查表核心程序?yàn)?大端存儲(chǔ)模式):
            unsigned long GetCRCL32(unsigned long crcinit, unsigned long crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC32時(shí)入口需要對(duì)crcval做處理)
            unsigned long i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 8;i ++)//4個(gè)字節(jié)位域4需要8次完成
            {
            crc = (crc << 4) ^ CRCL32_Col[((crc ^ crcval) >> 28) & 0x0F];//位域?qū)?單表16個(gè)字節(jié)
            crcval <<= 4;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于右移CRC32,權(quán)值XX,表格為(右移位域4取行表16個(gè)):
            CRCR32_Row[16]={CRC[0x00000000],CRC[0x10000000],...CRC[0xE0000000],CRC[0xF0000000]};
            右移CRC32查表核心程序?yàn)?小端存儲(chǔ)模式):
            unsigned int GetCRCR32(unsigned long crcinit, unsigned long crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC32時(shí)入口需要對(duì)crcval做處理)
            unsigned long i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 8;i ++)//4個(gè)字節(jié)位域4需要8次完成
            {
            crc = (crc >> 4) ^ CRCR32_Row[(crc ^ crcval) & 0x0F];//位域?qū)?單表16個(gè)字節(jié)
            crcval >>= 4;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            CRC位域8單表查表及建表原則(傳統(tǒng)的查表模式):
            左移位域8取列表256個(gè),大端存儲(chǔ)模式。右移位域8取行表256個(gè),小端存儲(chǔ)模式。
            對(duì)于左移CRC16,權(quán)值XX,表格為(左移位域8取列表256個(gè)):
            CRCL16_Col[256]={CRC[0x0000],CRC[0x0001],CRC[0x0002],...CRC[0x00FD],CRC[0x00FE],CRC[0x00FF]};
            左移CRC16查表核心程序?yàn)?大端存儲(chǔ)模式):
            unsigned int GetCRCL16(unsigned int crcinit, unsigned int crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC16時(shí)入口需要對(duì)crcval做處理)
            unsigned int i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 2;i ++)//2個(gè)字節(jié)位域8只需要2次完成
            {
            crc = (crc << 8) ^ CRCL16_Col[((crc ^ crcval) >> 8) & 0xFF];//位域?qū)?單表256個(gè)字節(jié)
            crcval <<= 8;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于右移CRC16,權(quán)值XX,表格為(右移位域8取行表256個(gè)):
            CRCR16_Row[256]={CRC[0x0000],CRC[0x1000],CRC[0x2000],...CRC[0xFD00],CRC[0xFE00],CRC[0xFF00]};
            右移CRC16查表核心程序?yàn)?小端存儲(chǔ)模式):
            unsigned int GetCRCR16(unsigned int crcinit, unsigned int crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC16時(shí)入口需要對(duì)crcval做處理)
            unsigned int i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 2;i ++)//2個(gè)字節(jié)位域8只需要2次完成
            {
            crc = (crc >> 8) ^ CRCR16_Row[(crc ^ crcval) & 0xFF];//位域?qū)?單表256個(gè)字節(jié)
            crcval >>= 8;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于左移CRC32,權(quán)值XX,表格為(左移位域8取列表256個(gè)):
            CRCL32_Col[256]={CRC[0x00000000],CRC[0x00000001],...CRC[0x000000FE],CRC[0x000000FF]};
            左移CRC32查表核心程序?yàn)?大端存儲(chǔ)模式):
            unsigned long GetCRCL32(unsigned long crcinit, unsigned long crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC32時(shí)入口需要對(duì)crcval做處理)
            unsigned long i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 4;i ++)//4個(gè)字節(jié)位域8只需要4次完成
            {
            crc = (crc << 8) ^ CRCL32_Col[((crc ^ crcval) >> 24) & 0x0F];//位域?qū)?單表256個(gè)字節(jié)
            crcval <<= 8;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }
            return crc;
            }
            對(duì)于右移CRC32,權(quán)值XX,表格為(右移位域8取行表256個(gè)):
            CRCR32_Row[256]={CRC[0x00000000],CRC[0x10000000],...CRC[0xFE000000],CRC[0xFF000000]};
            右移CRC32查表核心程序?yàn)?小端存儲(chǔ)模式):
            unsigned long GetCRCR32(unsigned long crcinit, unsigned long crcval)
            {//(可以不要初值crcinit,多字節(jié)CRC32時(shí)入口需要對(duì)crcval做處理)
            unsigned long i, crc=0;
            crcval = crcinit ^ crcval;
            for(i = 0;i < 4;i ++)//4個(gè)字節(jié)位域8只需要4次完成
            {
            crc = (crc >> 8) ^ CRCR32_Row[(crc ^ crcval) & 0xFF];//位域?qū)?單表256個(gè)字節(jié)
            crcval >>= 8;//準(zhǔn)備下一個(gè)位域,域?qū)?
            }

            關(guān)鍵詞: CRC位域單表查表建表方

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉