Operadors de bits en idioma C.

Bitwise Operators C Language



Els operadors de bits, sovint coneguts com a codificació de nivell de bits, han estat descartats per interpretar les dades només a nivell de bits. Bitwise realitza operacions en un o fins i tot patrons de bits addicionals i nombres binaris al nivell de bits. S'han utilitzat per accelerar la progressió de l'estimació dels càlculs numèrics. Consta de dos nombres, un dels quals és 0 i l’altre és 1. A continuació, es detallen alguns operadors de bits que parlarem al nostre article.

Inicieu la sessió des del vostre sistema Linux i proveu la drecera Ctrl + Alt + T per obrir el terminal de la consola. Tindrem alguns exemples per detallar les operacions dels operadors bit a bit en el llenguatge C. Detallem cada operador de bits per separat.







A bit a bit I:

L'operador de bits s'ha utilitzat per replicar un bit al resultat si aquest bit està present als dos operands mutus. C o C ++ requereixen 2 operands que realitzen AND a cada bit d'aquests dos enters. Resultats 1 de bits a bit quan els dos bits tenen un valor de 1. Per tant, per entendre el funcionament, creeu i obriu un fitxer de tipus C mitjançant l'editor Nano. Per a això, hem d’estar consumint nano instruccions a l’intèrpret d’ordres de la manera següent:



$nanoprova.c



El codi per a l’operador Bitwise AND s’ha mostrat a la imatge següent. Tot el que heu de fer és escriure aquest codi al fitxer editor GNO nano test.c tal com és. Aquest codi té la biblioteca de capçaleres stdio.h sense la qual no podem fer la codificació a la programació C. A continuació, hem creat un mètode principal amb el seu tipus de retorn com a enter. En el llenguatge C, l'execució del codi es fa mitjançant el mètode principal. Per tant, hem declarat dues variables de tipus enter, x i y, amb els valors 35 i 13 en conseqüència. Després d'això, s'ha especificat una altra variable sencera amb zero com a valor. Utilitzarem les dues primeres variables enteres i aplicarem l’operador AND de bits entre elles. Aquest treball s'ha fet a la següent línia on s'ha utilitzat l'operador AND com a &, i el valor resultant s'emmagatzemarà a la variable nul z. A continuació, hem utilitzat la declaració d'impressió per mostrar el valor resultant a la pantalla del terminal i es tanca el mètode principal. Deseu el fitxer mitjançant la drecera GNU Ctrl + S i, a continuació, sortiu de l’editor nano mitjançant Ctrl + X des de la màquina d’escriure del teclat.





Per tant, és el moment de compilar el codi anterior després de desar el fitxer. Utilitzeu la instrucció gcc a l'intèrpret d'ordres de la consola mentre utilitzeu el nom d'un fitxer com a test.c o el que hagueu anomenat el fitxer i premeu la tecla Retorn. Podeu veure que no mostra cap error; això significa que el codi és manualment correcte.



$gccprova.c

Un cop compilat el codi, és hora d’executar-lo ara. Per a aquest propòsit, executeu la consulta indicada a continuació a l'intèrpret d'ordres. El resultat mostra 1 com a resultat. Això significa que ambdues variables enteres tenen 1 en un dels seus bits. És per això que retorna 1.

$./a.out

OR a bits:

Ara s’ha convertit en l’elaboració de l’operador OR de bits. Com a resultat, l'operador de bits retorna 1 quan un dels seus bits és 1. Si els dos bits de dos enters són 0, donarà 0. Després d'obtenir tots els bits, hi haurà un conjunt de bits generats. Hem de veure quin és el nombre que van formar aquells bits. Per tant, obriu primer el mateix document test.c. Escriviu i deseu el codi que es mostra a continuació al fitxer GNU mitjançant la tecla Ctrl + S. El codi és gairebé el mateix que en l'exemple anterior de l'operador AND de bits. Aquesta vegada acabem de canviar el valor de l'enter x per 47 i hem utilitzat l'operador OR, per exemple. | entre ambdues variables. Sortiu del fitxer per compilar el codi.

Després d'executar amb èxit el document test.c, mostra el bit de sortida 47.

$./a.out

XOR a bit:

L'operador de bits retorna 1 quan tots dos bits numèrics són diferents. Per tant, quan els bits siguin els mateixos, donarà 0. El signe de l’operador ^ representarà l’operador de bits. De nou, obriu el document i escriviu el mateix codi antic a l'editor de fitxers GNU. Aquesta vegada hem utilitzat els operadors ^ dins de dues variables enteres, i el resultat s’emmagatzemarà a la variable z mentre s’imprimeix al terminal.

Compileu i executeu el fitxer test.c retorna 34 com a resultat. Això significa que el nou enter 34 es genera després que l’operador XOR s’hagi aplicat a dues variables enteres.

$./a.out

Complement bitwise:

Aquest operador només s'aplicarà a una sola variable i revertirà el valor del nombre de bits. Per exemple, canviarà el bit 0 a 1 i 1 a 0 bit. Escriviu el mateix codi al mateix fitxer però amb un petit canvi a la línia 6. Hem assignat el revers de x a z.

Compileu el fitxer i executeu-lo. A C, el resultat del complement Bitwise s'ha incrementat amb 1 amb signe negatiu.

Operador de torn esquerre

Canviarà el lloc dels bits fins a cert punt. El mateix codi es pot mostrar a la imatge adjunta a continuació. En aquest exemple, desplaçarem 2 bits cap a l'esquerra.

La sortida mostra el 188 com un valor recentment generat.

$./a.out

Operador de torn dret:

Funciona de la mateixa manera que funciona el desplaçament a l'esquerra, però en la direcció oposada, tal com es mostra al codi següent.

Aquesta vegada en tenim 11 com a sortida en canviar 2 bits cap al costat dret.

$./a.out

Conclusió:

En aquest article hem tractat tots els operadors bàsics de 6 bits a bit del codi de llenguatge C. Espero que obtingueu el que volíeu de la nostra guia.