Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici

Operacions a nivell de bits

Les variables enteres poden servir per emmagatzemar informacions de tipus binari. Cada bit només pot valer 0 o 1. A la figura següent es representa un nombre de 8 bits (byte o char) amb el pes que correspon a cada bit.

Atenció: Les rotacions de bits dónen resultats diferents segons si les variables emprades són amb signe o sense signe. No és recomanable fer-ho amb variables amb signe.

Nombre binari de vuit bits

El nombre representat (10111) correspon al valor 23 en decimal, com es pot veure a continuació:

		1  x   1   =   1
		1  x   2   =   2
		1  x   4   =   4
		1  x  16   =  16
		Total         23

L'entrada d'un valor binari en el programa s'indica de la següent manera:

	a = B00010111	// Valor binari

Amb aquests valors podem fer operacions lògiques a nivell de bit. Els operadors són els següents:

Operador Correspon a Exemple (amb 8 bits) Comentaris
& Funció i (and) B00001111   &   B01010101
00001111
01010101
--------
00000101
Només serà 1 si els dos bits combinats són 1
| Funció o (inclusiva) (or) B00001111   |   B01010101
00001111
01010101
--------
01011111
Només serà 0 si els dos bits combinats són 0
˜ Funció no (not) ˜ B00001111
00001111
--------
11110000
Converteix els 1 en 0 i els 0 en 1
^ Funció o exclusiva (xor) B00001111   ^   B01010101
00001111
01010101
--------
01011010
És 1 si els dos bits combinats són iguals i 0 si són diferents
<< Rotació de bits a l'esquerra B00001111 << 5
00001111
--------
11100000
Desplaça a l'esquerra (omplint amb zeros per la dreta)
el nombre de posicions indicades
>> Rotació de bits a la dreta B01010101 >> 3
01010101
--------
00001010
Desplaça a la dreta (omplint amb zeros per l'esquerra)
el nombre de posicions indicades

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.