Les operacions lògiques binàries són fonamentals al món de la informàtica i l'electrònica digital. No només permeten fer càlculs i processar dades, sinó que a més són la base del funcionament dels ordinadors actuals. Cada operació està dissenyada per manejar bits, valors de 0 i 1, els quals representen l'estat d'apagat i encès dels circuits elèctrics dels dispositius que fem servir al nostre dia a dia.
El concepte de lògica binària porta molt de temps en ús, però la seva importància ha crescut exponencialment amb el desenvolupament de la tecnologia digital. En aquest article, explorarem en profunditat les diferents operacions lògiques que es poden dur a terme sobre un conjunt de bits, com funcionen i on s'apliquen amb més freqüència. Tant si ets un estudiant que s'enfronta per primer cop a aquest tema com si ja tens experiència a l'àrea, trobaràs informació útil i detallada.
El paper de la lògica binària
La lògica binària treballa amb dos estats: 0 i 1, el que correspon a fals i veritable en lògica clàssica. Això permet processar grans quantitats de dades en sistemes informàtics i dispositius digitals. Les operacions que es realitzen sobre aquests bits són les trucades operacions booleanes, que formen el cor de l'àlgebra de Boole. Aquests dos estats permeten definir condicions que poden ser verificades i processades per circuits i programari de manera extremadament ràpida i precisa.
Operacions lògiques principals
Les operacions lògiques sobre números binaris es duen a terme bit a bit, és a dir, cada bit s'avalua individualment davant de la contrapart a l'altra entrada. El resultat de cada bit es combina després per formar el resultat final de loperació. A continuació es descriuen les operacions bàsiques més comunes.
Operació AND (I lògic)
L'operació AND s'encarrega de prendre dos bits com a entrada i genera una sortida que serà 1 només si tots dos bits d'entrada són 1. En qualsevol altre cas, la sortida serà 0. En altres paraules, tots dos bits necessiten ser veritables per generar un resultat veritable.
Exemple d'operació AND:
1010 AND 1100 = 1000
En aquest exemple, només els bits que són veritables a les dues entrades romanen encesos (és a dir, són 1) en el resultat.
Operació OR (O lògic)
L'operació OR, per altra banda, pren dos bits com a entrada i tornarà un 1 si com a mínim un dels bits d'entrada és 1. És a dir, si un dels dos (o tots dos) és veritable, el resultat també ho serà.
Exemple d'operació OR:
1010 O 1100 = 1110
En aquest cas, qualsevol bit que sigui veritable en qualsevol de les entrades o en totes dues serà també veritable a la sortida.
Operació NOT (NO lògic)
L'operació NOT és la més simple, ja que només necessita un bit com a entrada. La funció és revertir el valor del bit d'entrada. D'aquesta manera, si l'entrada és 0, la sortida serà 1, I viceversa.
Exemple d'operació NOT:
NOT 1010 = 0101
En aquest exemple, tots els bits han estat invertits en el resultat.
Operacions lògiques addicionals
A més de les tres principals, hi ha altres operacions lògiques menys utilitzades però que també tenen un paper important en determinats sistemes i circumstàncies.
Operació NAND (NO I lògic)
NAND és una combinació de AND amb una inversió NOT. Generarà una sortida de 1 sempre que almenys un dels bits d'entrada sigui 0. Només tornarà 0 si tots dos bits d'entrada són 1.
Operació NOR (NO O lògic)
NOR és l'invers de l'operació OR. Varia de tal manera que el seu resultat serà 1 sol si tots dos bits d'entrada són 0. En qualsevol altre cas, tornarà un 0.
Operació XOR (O exclusiu)
XOR és una operació lògica que torna 1 només si els bits d'entrada són diferents entre si. Si tots dos són iguals (tots dos 0 o tots dos 1), el resultat serà 0.
Operació XNOR (NO O exclusiu)
XOR també té una contrapart: XNOR. Aquest operador retorna 1 si els bits d'entrada són iguals (tots dos 0 o tots dos 1), i tornarà 0 si són diferents.
On es fan servir les operacions lògiques binàries?
Les operacions lògiques binàries són extremadament comunes en els sistemes de xarxes, l'electrònica digital i en programació. Si bé és probable que no en siguem conscients, aquestes operacions estan darrere de moltes de les activitats quotidianes que realitzem amb dispositius electrònics.
Un dels exemples més clars en què s'usen aquestes operacions és a les adreces IPv4. Cada dispositiu connectat a una xarxa té assignada una adreça IP i una màscara de subxarxa. Mitjançant l'operació AND, els dispositius comparen la vostra adreça amb altres dispositius per saber si pertanyen a la mateixa xarxa o si les dades que s'estan transmetent han de ser enviades a una xarxa diferent.
Exemple d'ús a IPv4:
Quan un dispositiu compara la vostra adreça amb la màscara de subxarxa:
Adreça IP: 11000000.10101000.00000001.00000001 Subxarxa: 11111111.11111111.11111111.00000000
Aplicant l'operació AND bit a bit, obtenim el següent:
11000000.10101000.00000001.00000000
El resultat és l'adreça de xarxa a què pertany el dispositiu.
La importància de George Boole
La lògica binària i el conjunt d'operacions que hem descrit no existirien tal com les coneixem sense la feina del matemàtic George Boole. Aquest geni del segle XIX va crear el que coneixem com a àlgebra de Boole, que estableix les bases matemàtiques per a les operacions booleanes i, eventualment, per a la lògica binària sobre la qual s'edifiquen els ordinadors i sistemes digitals actuals.
Boole va fer la seva contribució en una època en què les matemàtiques i la lògica seguien camins diferents. La seva visió d'unir les dues disciplines va canviar els fonaments del que avui entenem per lògica digital.
Operacions bit a bit
A més de les operacions esmentades, les operacions a nivell de bits tenen aplicacions molt pràctiques al processament de dades. Aquestes operacions permeten manipular i modificar els bits individuals d'un nombre binari, els quals són essencials per filtrar dades, realitzar emmascaraments de bits, i manipular números en sistemes de més fiabilitat.
L'operatòria AND a nivell de bits
Vegem primer l'operador AND a nivell de bits. El seu funcionament és força simple: es pren cada parell de bits corresponent entre dos números i s'apliquen les regles de l'operació AND per determinar si el bit en aquesta posició serà 0 (si tots dos bits d'entrada no són 1) o serà 1 (si ambdós bits dentrada són 1).
Exemple d'operació AND bitwise:
0101 AND 0011 = 0001
Ús de màscares per filtrar bits amb AND
A la programació digital s'utilitza comunament l'operador AND juntament amb màscares de bits per seleccionar o filtrar bits específics. Per exemple, si voleu comprovar si un bit particular en una seqüència de bits està encès o apagat, podeu realitzar una operació AND amb una màscara que seleccioneu només aquest bit.
Exemple de màscara de bits:
0011 AND 0010 = 0010
En aquest cas, estem comprovant si el segon bit està encès. Com que el resultat és diferent de zero, sabem que el bit està encès.
Altres operacions com loperador OR també tenen vastes aplicacions quan es tracta de treballar a nivell de bits.
Operació XOR bitwise
L'operador XOR llueix una de les característiques més útils en programació de baix nivell en permetre intercanviar valors entre dues variables sense fer servir una variable temporal. Aquest truc, conegut com a intercanvi XOR, és molt eficient i aprofita la taula de veritat de l'operador XOR.
Exemple dintercanvi XOR:
a = a XOR bb = a XOR ba = a XOR b
Després dexecutar aquestes tres operacions, el valor de a
y b
estaran intercanviats sense necessitat de fer servir una tercera variable.
Desplaçaments i rotacions a nivell de bits
Finalment, les operacions de desplaçament y rotació permeten moure els bits dun número cap a la dreta o cap a lesquerra. Aquestes operacions són útils en moltes àrees, com ara la criptografia i la manipulació de dades en sistemes encastats.
El desplaçament lògic cap a l'esquerra equival a multiplicar un número per 2, mentre que el desplaçament lògic cap a la dreta és equivalent a dividir el número per 2.
Amb una rotació a través del ròssec, els bits que surten per una banda tornen per l'altra, cosa que és útil per a alguns algorismes criptogràfics i en maquinari específic.
En definitiva, comprendre aquestes operacions és clau per treballar amb eficiència en àrees que requereixin una manipulació directa de bits, com ara la programació a baix nivell, el desenvolupament de sistemes encastats, o el disseny de maquinari digital.