Bittikohtainen toiminta

Logiikassa bittioperaatio on laskelma, joka manipuloi tietoja suoraan bittitasolla Boolen aritmeettisen mukaisesti . Ne ovat hyödyllisiä, kun on kyse datan manipuloinnista matalalla tasolla: koodaukset, verkon alemmat kerrokset (esimerkiksi TCP / IP ), salaus , missä ne sallivat myös toiminnot ominaisuuden 2 rajallisilla kentillä .

Tavallisiin bittikohtaisiin toimintoihin kuuluvat bittikohtaiset logiikkaoperaatiot ja bittisiirtotoiminnot oikealle tai vasemmalle.

Operaattorit

Alkeis operaattorit ovat binäärioperaatio suorittaa samanaikaisesti kaikki bitit sanan itsenäisesti. Siten tuloksen rankan n bitin arvo riippuu vain saman arvoisten bittien arvoista syöttöoperaateissa.

EI

Edustaa loogista negaatiota , lausekkeen täydennystä. Jokainen bitti on käännetty.

Esimerkiksi 4 bitillä, EI 7 = 8:

NOT 0111 = 1000

JA

Ja logiikka kahden ilmaisuja.

Esimerkki: 5 JA 3 = 1:

0101 AND 0011 = 0001

KULTA

Looginen tai kahden lausekkeen.

Esimerkki: 5 TAI 3 = 7:

0101 OR 0011 = 0111

XOR

Yksinomainen tai kahden lausekkeen.

Esimerkki: 5 XOR 3 = 6:

0101 XOR 0011 = 0110

Bittisiirtymät

Aivan kuten desimaalikohdassa, vasen siirtymä edustaa kertolaskua 10: llä, binäärisessä emäksessä vasen siirtymä vastaa kerrointa 2: lla. Päinvastoin, oikea siirtymä edustaa jakoa samoissa suhteissa.

Looginen muutos

Looginen muutos on poistaa bitti vektorin yhdeltä puolelta ja korvata se nollalla toisella puolella.

Vasen vaihtonäppäin 00010111 (+23) LEFT-SHIFT = 00101110 (+46)

Huomaa, että kiinteän koon arkkitehtuurilla merkittävin bitti voidaan menettää ( ylivuoto ) ja siten väärä tulos, jos halutaan kertoa kahdella. Lisäksi, jos kahden komplementtia käytetään edustamaan negatiivisia lukuja, merkkibittiä voidaan muuttaa, jolloin operandille saadaan vastakkainen merkkitulos:

10110111 (-73) LEFT-SHIFT = 01101110 (+110) Oikea siirtymä

Siirtyminen oikealle edustaa kokonaislukujakaumaa 2: lla. Jos vähiten merkitsevä bitti on 1, toisin sanoen luku on pariton, se menetetään kokonaislukujakautumisen periaatteen mukaisesti, jossa se ei voi olla murto-osa. osa.

00010111 (+23) RIGHT-SHIFT = 00001011 (+11)

Aritmeettinen muutos

Aritmeettisessa siirtymässä otetaan huomioon merkkibitti vaihdettaessa oikealle, jotta oikea laskenta voidaan jakaa kahdella negatiivisilla numeroilla, jotka on koodattu 2: n täydennysosassa . Täten aritmeettinen muutos bitistä 0 (positiivinen luku) alkavan numeron oikealle puolelle käyttäytyy kuin looginen siirto, kun taas numerolle, joka alkaa bitillä 1 (negatiivinen luku), lisätään 1 0: n sijaan vasen käyttäytyy kuin looginen muutos. Meillä on siis seuraava käyttäytyminen:

00110111 (+55) RIGHT-SHIFT = 00011011 (+27) 10111010 (-70) RIGHT-SHIFT = 11011101 (-35)

Aiheeseen liittyvät artikkelit