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:

    0101
XOR 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.

Operaatio C[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

  1. Bitwise Operators cs.fsu.edu. Viitattu 16.2.2020. (englanniksi)
  2. Oualline, Steve: Practical C Programming, s. 158. Third edition. O'Reilly, 1997. ISBN 1-56592-306-5. (englanniksi)
  3. Code in ARM Assembly: Bit operations eclecticlight.co. 16.7.2021. Viitattu 31.10.2022. (englanniksi)
  4. MS QuickBASIC 4.5 Language Reference (englanniksi)
  5. NMOS 6502 Opcodes (englanniksi)
  6. Z80 CPU Microprocessor Instant Reference Card (englanniksi)
  7. Intel ASM86 Language Reference Manual, sivu 6-10 (englanniksi)
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.