Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

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.

Code Block

 
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.

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

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.

{
Code Block
}
>>> bin(0b110011 << 3)
'0b110011000'
>>> bin(0b110011 >> 3)
'0b110'
>>>
{code}