Bit -operaattorit C -kielellä

Bitwise Operators C Language

Bittikohtaiset operaattorit, joita usein kutsutaan bittitason koodauksiksi, on hylätty tulkitsemaan tietoja vain bittitasolla. Bitwise suorittaa toimintoja yhdellä tai jopa useammilla bittikuvioilla ja binääriluvuilla bittitasolla. Niitä on käytetty nopeuttamaan numeeristen laskelmien arvioinnin etenemistä. Se koostuu kahdesta numerosta, joista toinen on 0 ja toinen on 1. Tässä on joitain bittikohtaisia ​​operaattoreita, joista keskustelemme artikkelissamme.

Kirjaudu sisään Linux -järjestelmästäsi ja avaa konsolin pääte painamalla Ctrl+Alt+T -pikanäppäintä. Meillä on muutamia esimerkkejä kehittääksesi bittikohtaisten operaattoreiden toimintoja C -kielellä. Tarkennetaan jokaista bittikohtaista operaattoria erikseen.



Bittikohtaisesti JA:

Bittikohtaista operaattoria on käytetty toistamaan bitti tulokseen, jos kyseinen bitti on läsnä molemmissa keskinäisissä operandeissa. C tai C ++ vaatii kaksi operandia, jotka suorittavat JA näiden kahden kokonaisluvun jokaisella bitillä. Bittikohtainen AND tuottaa 1, kun molempien bittien arvo on 1. Joten ymmärrä työskentely luomalla ja avaamalla C -tyypin tiedosto Nano -editorilla. Tätä varten meidän on kulutettava kuoren nano -ohjeita seuraavasti:



$nanotesti. c



Bitwise AND -operaattorin koodi on esitetty alla olevassa kuvassa. Sinun tarvitsee vain kirjoittaa tämä koodi GNU nano -editoriedostosi test.c sellaisenaan. Tällä koodilla on stdio.h -otsikkokirjasto, jota ilman emme voi saada koodausta C -ohjelmoinnissa. Sitten olemme luoneet päämenetelmän, jonka palautustyyppi on kokonaisluku. C -kielellä koodi suoritetaan päämenetelmän avulla. Joten olemme ilmoittaneet kaksi kokonaislukutyyppistä muuttujaa, x ja y, arvot 35 ja 13 vastaavasti. Tämän jälkeen on määritetty toinen kokonaislukumuuttuja, jonka arvo on nolla. Käytämme kahta ensimmäistä kokonaislukumuuttujaa ja käytämme bittikohtaista AND -operaattoria niiden välillä. Tämä työ on tehty seuraavalla rivillä, jossa AND -operaattoria on käytetty & -na, ja tuloksena oleva arvo tallennetaan nollamuuttujaan z. Sitten olemme käyttäneet tulostuslauseketta tulosarvon näyttämiseen pääteikkunassa, ja päämenetelmä sulkeutuu. Tallenna tiedosto käyttämällä GNU -pikakuvaketta Ctrl+S ja sulje sitten nanoeditori näppäimistöllä kirjoittamalla Ctrl+X.

Joten on aika koota yllä oleva koodi tiedoston tallentamisen jälkeen. Käytä konsolin kuoren gcc -käskyä käyttäessäsi tiedoston nimeä test.c tai mitä tahansa tiedoston nimeä ja paina Enter -näppäintä. Näet, että se ei näytä virheitä; Tämä tarkoittaa, että koodi on manuaalisesti oikea.



$gcctesti. c

Kun olet koonnut koodin, on aika suorittaa koodi nyt. Suorita tätä varten kuvassa alla mainittu kysely. Tulos näyttää tuloksena 1. Tämä tarkoittaa, että molempien kokonaislukumuuttujiemme biteissä on 1. Siksi se palauttaa 1.

$./a. ulos

Bittikohtaisesti TAI:

Nyt on käännetty bittikohtainen TAI -operaattori kehitettäväksi. Bittikohtainen operaattori palauttaa tuloksen 1, kun yksi sen bitistä on 1. Jos kahden kokonaisluvun molemmat bitit ovat 0, niin tuloksena on 0. Kun kaikki bitit on saatu, syntyy joukko bittejä. Meidän on nähtävä, mikä numero nuo bitit muodostivat. Avaa siis sama test.c -asiakirja ensin. Kirjoita ja tallenna alla oleva koodi GNU-tiedostoon Ctrl+S-näppäimellä. Koodi on melkein sama kuin yllä oleva bittikohtainen AND -esimerkki. Tällä kertaa olemme juuri muuttaneet kokonaisluvun x arvon 47: ksi ja käyttäneet OR -operaattoria, esim. | molempien muuttujien välillä. Sulje tiedosto kootaksesi koodin.

Dokumenttitestin onnistuneen suorittamisen jälkeen se näyttää 47 tulostusbittiä.

$./a. ulos

Bittikohtainen XOR:

Bittikohtainen operaattori palauttaa arvon 1, kun molemmat numerobitit ovat erilaisia. Joten kun bitit ovat samat, tuloksena on 0. ^ -operaattorimerkki edustaa bittikohtaista operaattoria. Joten avaa asiakirja uudelleen ja kirjoita sama vanha koodi GNU -tiedostoeditorissa. Tällä kertaa olemme käyttäneet ^ -operaattoreita kahden kokonaislukumuuttujan sisällä, ja tulos tallennetaan z -muuttujaan tulostettaessa päätelaitteessa.

Käännä ja suorita tiedosto testi. C palauttaa tuloksena 34. Tämä tarkoittaa sitä, että uusi kokonaisluku 34 generoidaan sen jälkeen, kun XOR -operaattori on sovellettu kahteen kokonaislukumuuttujaan.

$./a. ulos

Bittikohtainen täydennys:

Tätä operaattoria sovelletaan vain yhteen muuttujaan ja se palauttaa bittiluvun arvon. Esimerkiksi se muuttaa 0 -bitin 1: ksi ja 1 - 0 -bittiseksi. Kirjoita sama koodi samaan tiedostoon, mutta pienellä muutoksella riville 6. Olemme määrittäneet x: n kääntöpuolen z: ksi.

Käännä tiedosto ja suorita se. C: ssä Bitwise -komplementin tulosta on lisätty yhdellä negatiivisella merkillä.

Vasen vaihto -operaattori:

Se muuttaa bittien sijaintia jossain määrin. Sama koodi voidaan näyttää alla olevassa kuvassa. Tässä esimerkissä siirrämme 2 bittiä vasemmalle.

Tulos näyttää 188: n vasta luotuna arvona.

$./a. ulos

Oikea vaihdeoperaattori:

Se toimii samalla tavalla kuin vasen vaihde, mutta päinvastaiseen suuntaan, kuten alla olevassa koodissa on esitetty.

Tällä kertaa meillä on 11 tulosta, kun siirretään 2 bittiä oikealle puolelle.

$./a. ulos

Johtopäätös:

Olemme käsitelleet kaikki 6 perusbittikohtaista operaattoria C -kielikoodissamme tässä artikkelissa. Toivottavasti saat mitä halusit oppaastamme.