奇偶校驗(yàn)位(奇偶校驗(yàn))
關(guān)于奇偶校驗(yàn)位,奇偶校驗(yàn)這個(gè)很多人還不知道,今天菲菲來(lái)為大家解答以上的問題,現(xiàn)在讓我們一起來(lái)看看吧!
1、奇偶校驗(yàn)(Parity Check)是一種校驗(yàn)代碼傳輸正確性的方法。
2、根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中"1"的個(gè)數(shù)是奇數(shù)或偶數(shù)來(lái)進(jìn)行校驗(yàn)。
3、采用奇數(shù)的稱為奇校驗(yàn),反之,稱為偶校驗(yàn)。
4、采用何種校驗(yàn)是事先規(guī)定好的。
5、通常專門設(shè)置一個(gè)奇偶校驗(yàn)位,用它使這組代碼中"1"的個(gè)數(shù)為奇數(shù)或偶數(shù)。
6、若用奇校驗(yàn),則當(dāng)接收端收到這組代碼時(shí),校驗(yàn)"1"的個(gè)數(shù)是否為奇數(shù),從而確定傳輸代碼的正確性。
7、奇偶校驗(yàn)需要一位校驗(yàn)位,即使用串口通信的方式2或方式3(8位數(shù)據(jù)位+1位校驗(yàn)位)。
8、奇校驗(yàn)(odd parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為奇數(shù)。
9、即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“1”,奇數(shù)相反。
10、以發(fā)送字符:10101010為例偶校驗(yàn)(even parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為偶數(shù)。
11、即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“0”,奇數(shù)相反。
12、還是以發(fā)送字符:10101010為例數(shù)據(jù)和校驗(yàn)位發(fā)送給接受方后,接收方再次對(duì)數(shù)據(jù)中1的個(gè)數(shù)進(jìn)行計(jì)算,如果為奇數(shù)則校驗(yàn)通過,表示此次傳輸過程未發(fā)生錯(cuò)誤。
13、如果不是奇數(shù),則表示有錯(cuò)誤發(fā)生,此時(shí)接收方可以向發(fā)送方發(fā)送請(qǐng)求,要求重新發(fā)送一遍數(shù)據(jù)。
14、優(yōu)缺點(diǎn):奇偶校驗(yàn)的檢錯(cuò)率只有50%,因?yàn)橹挥衅鏀?shù)個(gè)數(shù)據(jù)位發(fā)生變化能檢測(cè)到,如果偶數(shù)個(gè)數(shù)據(jù)位發(fā)生變化則無(wú)能為力了╮(╯﹏╰)╭奇偶校驗(yàn)每傳輸一個(gè)字節(jié)都需要加一位校驗(yàn)位,對(duì)傳輸效率影響很大。
15、奇偶校驗(yàn)只能發(fā)現(xiàn)錯(cuò)誤,但不能糾正錯(cuò)誤,也就是說(shuō)它只能告訴你出錯(cuò)了,但不能告訴你怎么出錯(cuò)了,一旦發(fā)現(xiàn)錯(cuò)誤,只好重發(fā)。
16、雖然奇偶校驗(yàn)有很多缺點(diǎn),但因?yàn)槠涫褂闷饋?lái)十分簡(jiǎn)單,故目前仍被廣泛使用。
17、應(yīng)用:如何用編程確定一個(gè)字節(jié)中“1”個(gè)數(shù)的奇偶性?我們可以利用二進(jìn)制數(shù)相加的特點(diǎn):0+0=0、1+0=1+1=0可以看出,如果我們將一個(gè)字節(jié)的所有位相加有奇數(shù)個(gè)“1”的字節(jié)的和為1有偶數(shù)個(gè)“1”的字節(jié)的和為0由此即可通過編程完成判斷。
18、實(shí)際應(yīng)用中,實(shí)現(xiàn)方法很多,但這是相對(duì)簡(jiǎn)單的一種,這里不再贅述。
本文到此分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽: 奇偶校驗(yàn)