Hammingi kood on binaaredastuse vigade tuvastamise ja parandamise meetod. See teeb seda, lisades kontrollimiseks kasutatavasse järjestusse täiendavad kahendnumbrid, samuti tuvastusloogikat pakkuva algoritmi. Selline kood on võimeline leidma mis tahes bittide jadas kaks viga ja parandama ühe biti, mis võib olla vale. Kõige sagedamini viidatud Hammingi kood on tuntud kui Hamming(7,4), kus neli tähistab algbittide arvu ja seitse tähistab jada bittide koguarvu pärast täiendavate kontrollbittide kaasamist.
Tehnika sai oma nime selle looja Richard Hammingu järgi, kes avaldas meetodi 1950. aastal. Hammingi kood toimib bittide jada ja täiendavate kontrollbittide, mida nimetatakse paarsusbittideks, sisestamine jadasse. Kontrollbitid sisestatakse alati asendisse, mis on kahe astmega, nii et suvalise arvu bitte saab kontrollida täiendavate paarsusbittide kaasamisega. See võib jätkuda seni, kuni jada viimane paarsusbitt on positsioonis, mis on kahe astmega, mis on väiksem või võrdne jada lõppasendiga.
Kui kõik paarsusbitid on paigas, on ülejäänud positsioonid tegelikud andmebitid. Neljabitise näite puhul oleksid bitipositsioonid üks, kaks ja neli paarsusbitid, samas kui positsioonid kolm, viis, kuus ja seitse on andmed. Kui see jada on loodud, hakkab Hammingi koodi loogika tööle.
Hammingi koodis kasutatakse iga jadale lisatud paarsusbitti, et kontrollida mõningaid bitipositsioone, millele need on lähedal, sealhulgas iseendale. Paarsusbitt positsioonis üks kontrollib iga teist bitipositsiooni, mis on sisuliselt iga paaritu arv positsioon jadas. Teine paarsusbitt, asendis kaks, kontrollib positsioone kaks ja kolm, seejärel jätab kaks positsiooni vahele, kontrollib veel kahte positsiooni, jätab vahele veel kaks jne. Kui positsioonis neli on paarsusbitt, toimib see samamoodi, et kontrollib positsioone neli kuni seitse, seejärel jätab neli positsiooni vahele, kontrollib veel nelja ja edasi. Iga paarsusbitt jadas jätkub sel viisil kogu jada jooksul.
Protsess, mille käigus Hammingi kood tuvastab ja parandab vea, seisneb kontrolljada bittide liitmises iga paarsuskontrolli jaoks, millest igaüks peab välja tulema paarisarv. Seitsmebitise näite puhul liidetakse esimese paarsuskontrolli jaoks bitid üks, kolm, viis ja seitse. Kui kogusumma on paarisarv, kontrollib paarsus välja, aga kui kogusumma on paaritu, siis on viga. Kuna paarsuskontrollid kattuvad, kuvatakse kaks sellist viga. Kui liidetakse kahe paarsusega bitipositsioonid, mis ei anna ühtlast kogusummat, paljastab see biti, mida tuleb parandada.
Mõelge seitsmebitise Hammingi koodi näites, et positsiooni number viis bitt on vale. Positsioonides üks, kolm, viis ja seitse olevate bittide summa tuleb välja paaritu arvuna, nagu ka positsioonides neli kuni seitse olevate bittide summa. See näitab, et kontrollbittide paarsuskontroll positsioonides XNUMX ja XNUMX ebaõnnestus. Kui liita üks ja neli, on kokku viis, mis on edastuse vale biti asukoht, mis vajab parandamist.