Bitit ovat yksinkertaisempia tavallisten tietokoneiden käyttämiä tietoyksiköitä. Kaikki ohjelmissa käytettävät muuttujat koostuvat eri pituisista bittijonoista kuten tavuista, jotka ovat kahdeksan bitin kokoisia. Biteille tehtävät operaatiot ovat bittioperaatioita.
 
Pythonissa bittioperaatioita voi tehdä vain kokonaisluvuille. Tietokone käsittelee kokonaislukuja binäärilukuina, joiden jokaista numeroa vastaa yksi bitti. Seuraavissa esimerkeissä käytetäänkin bin funktiota tämän havainnollistamiseen.
 
Loogisia perustoimintoja vastaavat bittioperaatioissa & (and), | (or) ja ~ (not) operaattorit. Sen sijaan, että operaatio kohdistuisi tässä yksittäiseen totuusarvoon, se kohdistuu kaikkiin operandien bitteihin yksitellen. Näiden lisäksi on vielä ns. eksklusiivinen tai toiminto (xor), jonka operaattori on ^. Se palauttaa tosi vain kuin jompikumpi (mutta ei molemmat) operandien biteistä on 1.

>>> bin(0b1010 | 0b0100)
'0b1110'
>>> bin(0b1010 & 0b1100)
'0b1000'
>>> bin(~0b11001100)
'-0b11001101'
>>> bin(0b1010 ^ 0b0100)
'0b1110'
>>>  

Operaattorin ~ tapauksessa toiminta ei ole niin selvää koska miinusmerkki sisältyy myös kokonaisluvun bitteihin, jonka muuttuminen hämärtää binääri esitystä hieman.
 
Näiden lisäksi on vain siirto-operaattorit << (vasemmalle) ja >> (oikealle), joiden oikealle puolelle tulee numeroarvo, joka kuvaa montako bittiä siirto on. Nämä siirtävät bittien arvoja siihen suuntaan kuin numerot binääri esityksessä esitetään. Oikealle siirrettäessä vähiten merkitsevät bitit vain hävitetään ja vasemmalle siirrettäessä vähiten merkitsevien bittien arvoksi tulee nollia.

>>> bin(0b110011 << 3)
'0b110011000'
>>> bin(0b110011 >> 3)
'0b110'
>>>
  • No labels
You must log in to comment.