91一级特黄大片|婷婷中文字幕在线|av成人无码国产|日韩无码一二三区|久久不射强奸视频|九九九久久久精品|国产免费浮力限制

您申請(qǐng)加入課程:Computer  Networks  B
需要驗(yàn)證您的身份,請(qǐng)輸入請(qǐng)求信息:
您的學(xué)號(hào):
班級(jí)選擇:
附注信息:
  • 創(chuàng)建者

    Creator

    曾德澤
  • 活躍度

    Activeness

  • 訪問量

    Visits

    1816

教學(xué)公告

CRC校驗(yàn)上機(jī)實(shí)驗(yàn)
[作者: 曾德澤  發(fā)布時(shí)間:2015-06-05 19:46:04  瀏覽次數(shù):746次]

CRCcyclical redundancy check) 循環(huán)冗余校驗(yàn),在《計(jì)算機(jī)組成原理》里面有這個(gè)知識(shí)點(diǎn)。類似的校驗(yàn)有奇偶校驗(yàn)、校驗(yàn)和校驗(yàn)。

可以簡(jiǎn)單的理解成在發(fā)送數(shù)據(jù)后面加上這個(gè)驗(yàn)證碼,判斷前面數(shù)據(jù)是否正確。

接收方如何檢查收到的信息有無錯(cuò)誤(一個(gè)簡(jiǎn)單通俗的模型) 首先接收方和發(fā)送方約定一個(gè)“生成多項(xiàng)式”g(x);

生成多項(xiàng)式的選取是個(gè)很有難度的問題,如果選的不好,那么檢出錯(cuò)誤的概率就會(huì)低很多。好在這個(gè)問題已經(jīng)被專家們研究了很長(zhǎng)一段時(shí)間了,對(duì)于我們這些使用者來說,只要把現(xiàn)成的成果拿來用就行了。在本次課程上,我們寫一個(gè)簡(jiǎn)單的程序來生成CRC碼,然后做驗(yàn)證。


模板:



#include

#include

#include

#include



typedef unsigned char uchar;

typedef unsigned short ushort;

typedef unsigned int uint;


/************************************************************************/

/* 產(chǎn)生CRC16多項(xiàng)式(0x1021)的校驗(yàn)碼(只能處理單個(gè)字節(jié))

/************************************************************************/

void crc16_one_byte(const uchar data, ushort &crc)

{

}


/************************************************************************/

/* 產(chǎn)生CRC32多項(xiàng)式(0x04C11DB7)的校驗(yàn)碼(只能處理單個(gè)字節(jié))

/************************************************************************/

void crc32_one_byte(const uchar data, uint &crc )

{

}



/************************************************************************/

/* 產(chǎn)生CRC16多項(xiàng)式(0x1021)的校驗(yàn)碼(能處理多個(gè)字節(jié))

/* CRC32類似

/************************************************************************/

void crc16_multi_byte(const uchar data, ushort &crc)

{

}



/************************************************************************/

/* 得到發(fā)送的數(shù)據(jù)

/* 對(duì)應(yīng)于CRC16校驗(yàn),CRC32類似

/************************************************************************/

void getSendData(const uchar data, char *sendData, ushort &crc16)

{

}


/************************************************************************/

/* 驗(yàn)證接收到的數(shù)據(jù)

/* 對(duì)應(yīng)于CRC16校驗(yàn),CRC32類似

/************************************************************************/

void checkout_data(char *sendData)

{

}


int main( void )

{

char sendData[10] = {0};

uchar data = 'a';

ushort crc16 = 0;

//得到CRC16的校驗(yàn)碼

crc16_one_byte(data, 8, crc16);

//拼接得到需要發(fā)送的數(shù)據(jù)

getSendData(data, sendData, crc16);

//驗(yàn)證數(shù)據(jù)

checkout_data(sendData);


return 0;

}




相關(guān)課程

掃一掃二維碼,快速加入本課程!

放大二維碼 查看使用方法
關(guān)閉