計算方法
加法
從低位到高位依次運算,“滿二進一”,同一數位上隻有四種情況:0+0=0,0+1=1,1+0=1,1+1=10
減法
先把數位對齊,同一數位不夠減時,從高一位借位,“借一當二”。
乘法
乘法口訣為:零零得零,一零得零,一一得一。
每一位商數非0則1。
二進制除
二進制數字的計算,很有特點。兩個二進制數字的相加,如果不考慮進位,就是“模2和”;兩個二進制數字的相減,如果不考慮借位,就是“模2減”。
“模2和”、“模2減”,名稱、算法雖然不一樣,但是,結果是相同的,實際上都是兩個二進制數字相“異或”。如果兩個二進制數字相同,“異或”的結果就是0;如果兩個二進制數字不同,“異或”的結果就是1。
“模2除”就是在求餘數的時候,應用了“模2減”。在“模2除”中,因為使用了“模2減”,所以在商上1的時候,不要考慮夠不夠減(因為這裡不是二進制的除法),隻要最高位是1,位數湊夠了四位,就可以用它“模2減”1001
實例分析
例1
1111000除以1101
例2
被校驗的數據M(x)=1000,其選擇生成多項式為G(x)=x^3+x+1,該數據的循環冗餘校驗和應為多少?
G(x)=x^3+x+1對應的二進制數為1011,且G(x)中含3個項式,生成多項式為4位二進制,由CRC規則應該取(4-1)=3位(校驗和),所以可以預加上3位得到1000B*2^3=1000000B;
1000000B(被除數)對1011(除數)做模2除法,得到的餘數便是101B(即CRC校驗和),所以該數據的循環冗餘校驗後的數據應為1000000B+101B=1000101B。
具體說明
想知道模2除法,隻需要知道什麼是異或運算就很容易算出。
計算機中,異或邏輯表示為:(記憶方法:同為0異為1)
1^1=0
0^0=0
1^0=1
0^1=1