陳新龍
進(jìn)制轉(zhuǎn)換是我們利用符號來計數(shù)的方法之一,進(jìn)制轉(zhuǎn)換由一組數(shù)碼符號和兩個基本因素“基數(shù)”與“位權(quán)”構(gòu)成,進(jìn)制轉(zhuǎn)換的方法和原理都在之前的文章中已有介紹,今天和大家分享一個和進(jìn)制轉(zhuǎn)換有著緊密聯(lián)系的內(nèi)容,這就是奇偶校驗。
奇偶校驗是一種校驗數(shù)據(jù)傳輸?shù)恼_性的方法。根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼數(shù)位中的“1”的個數(shù)是奇數(shù)或偶數(shù)來進(jìn)行校驗。其中奇校驗方法:統(tǒng)計二進(jìn)制數(shù)據(jù)的數(shù)位中“1”的個數(shù),若個數(shù)為奇數(shù),則校驗位值為0,否則校驗位值為1。
小明編寫一個計算奇校驗的VB程序,需要實現(xiàn)在文本框Text1中輸入1-255十進(jìn)制待校驗數(shù),單擊計算按鈕Command1后,在文本框Text2中顯示該數(shù)對應(yīng)的二進(jìn)制值,并且在標(biāo)簽Label4中顯示該數(shù)的待校驗數(shù)值的功能。
這個程序最主要的功能就是數(shù)二進(jìn)制數(shù)的個數(shù),如果二進(jìn)制數(shù)的個數(shù)為奇數(shù),校驗位數(shù)為0,如果二進(jìn)制數(shù)的個數(shù)為偶數(shù),校驗位數(shù)為1。如何將待校驗數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)呢?其實就是簡單十進(jìn)制轉(zhuǎn)二進(jìn)制的方法:除2取余,然后倒數(shù)排序、高位補零。
在VB編程的過程中,我們事先需要準(zhǔn)備定義所需的變量,了解定義變量的類型。待校驗數(shù)的變量是整形,并且數(shù)值的范圍在1-255之間,二進(jìn)制數(shù)的變量是字符串(八位長度),新增加變量t類型是整形,用來統(tǒng)計循環(huán)過程中產(chǎn)生1的個數(shù),由于十進(jìn)制轉(zhuǎn)二進(jìn)制的過程中使用除二取余方法,轉(zhuǎn)換的數(shù)字當(dāng)中只會出現(xiàn)數(shù)字1和0,所以只需要將所有的數(shù)字累加得出和,通過判斷累加的和是奇數(shù)還是偶數(shù)即可,累加的和與2進(jìn)行取余,若值等于1為奇數(shù),若值等于0為偶數(shù)。
奇偶校驗有兩種類型:奇校驗和偶校驗。不過奇偶校驗是最簡單的錯誤校驗檢測碼,由于沒有辦法確定哪一位出錯,所以它不能校正錯誤。發(fā)現(xiàn)錯誤必須扔掉對應(yīng)的全部數(shù)據(jù),然后重新傳輸。