Bittioperaatio

Bittioperaatio (engl. bitwise operation) on ohjelmointikielissä bittioperaattoreilla tehtäviä toimintoja.[1]

Bittitason operaattorit ja niiden vastineet C-kielessä ovat:[1][2]

AND (&): jos molemmat bitit ovat 1, tulos on 1, muutoin 0:

    0101 AND 0011  = 0001

OR (|): jos jompikumpi bitti on 1, tulos on 1, muutoin 0:

    0101 OR 0011  = 0111

XOR (^): jos vain toinen bitti on 1, tulos on 1. Jos molemmat bitit ovat samat, tulos on 0:

    0101XOR 0011  = 0110

Komplementti eli NOT (~): vaihtaa kaikki ykköset nolliksi ja nollat ykköseksi:

NOT 0111  = 1000

Siirto vasemmalle (<<): siirtää bittejä vasemmalle, täytetään nollalla vapautuvat:

 << 0110  = 1100

Siirto oikealle (>>): siirtää bittejä oikealle, täyttö riippuu koneesta (yleensä riippuu etumerkistä):

 >> 0110  = 0011

Bittioperaatiot eri alustoilla

Suorittimet sisältävät erilaisia käskyjä operaatioiden suorittamiseen. Esimerkiksi looginen ja aritmeettinen siirto oikealle (LSR ja ASR) ovat eri tavoin toimivia käskyjä ARM-suorittimissa.[3]

Taulukossa on eräiden ohjelmointikielten ja suorittimien bittioperaattorit.

OperaatioC[1]QBasic[4]6502[5]Z80[6]8086[7]
AND&ANDANDANDAND
OR|ORORAOROR
XOR^XOREORXORXOR
NOT~NOT(ei ole)CPLNOT
siirto vasemmalle<<(ei ole)ASL, ROLSLA, RL, RLCSHL, SAL, ROL, RCL
siirto oikealle>>(ei ole)LSR, RORSRL, SRA, RR, RRCSHR, SAR, ROR, RCR

Katso myös

Lähteet

🔥 Top keywords: