-
Notifications
You must be signed in to change notification settings - Fork 2
Kiekvienas CRC metodas turi jį atitinkantį polinomą (CRC metodo pavadinime bitų skaičius tik nurodo vienanarių kiekį, bet ne jų koeficientus, todėl prieš skaičiuojant išsiaiškinti pagal kokį polinomą reikia atlikti skaičiavimus. Pavyzdžiui CRC-3 gali naudoti bet kokį x3+a2x2+a1x1+a0x0 = x3+a2x2+a1x+1 formos polinomą, kur ai gali būti 0 arba 1 (aukčiausias koeficientas visada bus 1) t.y. teoriškai ir x3+1 ir x3+x2+x+1 gali būti naudojamas CRC-3 skaičiavime).
Paprasčiausias (taip pat ir mažiausiai patikimas) CRC metodas aptikti perdavimo klaidas yra CRC-1. Visa CRC-1 yra perduodamų duomenų gale pridėti bitą, kuris naudojamas kaip kontrolinė suma. CRC-1 gali būti dviejų tipų: lyginis ir nelyginis. Kai naudojamas lyginis CRC-1 skaičiavimas - kontrolinės sumos bito reikšmė yra 1 tik tuo atveju, jei vienetų (bitų reikšmę) skaičius yra nelyginis (į skaičiavimą neįtraukiamas kontrolinės sumos bitas). Jei vienetų (bitų reikšmė) skaičius yra lyginis - kontrolinės sumos bito reikšmę yra 0. Nelyginio CRC-1 atveju viskas atvirkčiai: kontrolinio bito reikšmę yra 1 kai vienetų skaičius lyginis ir 0 kai - nelyginis. Lyginis CRC-1 yra specialus CRC atvejis, kur vieno bito kontrolinė suma apskaičiuojama pagal x+1 polinomą.
| 9 bitai duomenų | vienetų suma | perduodami duomenys su kontroline suma (10 bitų) | |
|---|---|---|---|
| lyginis | nelyginis | ||
| 000000000 | 0 | 0000000000 | 0000000001 |
| 1011001001 | 5 | 10110010011 | 10110010010 |
| 1110101100 | 6 | 11101011000 | 11101011001 |
| 1111111111 | 9 | 11111111111 | 11111111110 |