Diferencia entre revisiones de «and bit a bit»

De ArduWiki
Saltar a: navegación, buscar
(Descripción)
Línea 1: Línea 1:
 
== Descripción ==
 
== Descripción ==
El operador binario bit a bit NOT es representado por el caracter tilde ~. NOT opera sobre el numero a su derecha cambiando cada bit a su valor opuesto, es decir: cada 0 se convierte en 1 y 1 se convierte en 0.
+
El operador binario bit a bit AND es representado por el caracter et (ampersand) '''&'''. AND establece (pone en 1) un bit sí y solo si el bit de esa posición está establecido (en 1) en ambos operandos.
  
 
{| class="wikitable  col1cen col2cen col3cen"
 
{| class="wikitable  col1cen col2cen col3cen"
!a!!b!!a <nowiki>&&</nowiki> b
+
!a!!b!!a <nowiki>&</nowiki> b
 
|-
 
|-
 
|0||0||0
 
|0||0||0
Línea 13: Línea 13:
 
|1||1||1
 
|1||1||1
 
|}
 
|}
 +
{{Nota|esta operación también es utilizada para borrar (poner en cero) uno o varios bits específicos en una variable. Todo bit en 1 en el segundo operando, se quedará como está; mientras que todo bit en cero se borrará}}
  
 
== Sintaxis ==
 
== Sintaxis ==
 
<pre>
 
<pre>
 +
op1 & op2
 
</pre>
 
</pre>
 +
 +
;op1: primer operando, es la variable (de cualquier tipo) a modificar.
 +
;op2: segundo operando, es quien va a relizar las modificaciones pertinentes.
  
 
== Retorno ==
 
== Retorno ==
Nada.
+
El valor resultante, donde cada bit se establece sólo si lo está en ambos operandos.
  
 
== Advertencias ==
 
== Advertencias ==
* No confundir el operador bit a bit not con el boleano [[not] nowiki>!</nowiki>
+
* No confundir el '''operador bit a bit and''' con el boleano [[and]] <nowiki>&&</nowiki>
 +
* Idealmente ambos operandos deberían ser del mismo tipo (tamaño); en caso de no ser así, se podrían borrar bits si el segundo es el más pequeño.
  
 
== Ejemplo ==
 
== Ejemplo ==
 
<pre>
 
<pre>
byte a = B11110000;
+
char n = -64;
byte b = ~a; //B00001111
+
n &= B01111111; // Con esto lo acabo de convertir en positivo; mientras que los demás bits no me interesan, por eso no los toco.
int a = 103; //B0000000001100111 = 103
 
int b = ~ a; //B1111111110011000 = -104
 
x = ~ x; // alternar todos los bits en x y almacenar de nuevo en x
 
 
</pre>
 
</pre>
  

Revisión del 00:57 28 jun 2018

Descripción

El operador binario bit a bit AND es representado por el caracter et (ampersand) &. AND establece (pone en 1) un bit sí y solo si el bit de esa posición está establecido (en 1) en ambos operandos.

a b a & b
0 0 0
1 0 0
0 1 0
1 1 1

Nota: esta operación también es utilizada para borrar (poner en cero) uno o varios bits específicos en una variable. Todo bit en 1 en el segundo operando, se quedará como está; mientras que todo bit en cero se borrará


Sintaxis

op1 & op2
op1
primer operando, es la variable (de cualquier tipo) a modificar.
op2
segundo operando, es quien va a relizar las modificaciones pertinentes.

Retorno

El valor resultante, donde cada bit se establece sólo si lo está en ambos operandos.

Advertencias

  • No confundir el operador bit a bit and con el boleano and &&
  • Idealmente ambos operandos deberían ser del mismo tipo (tamaño); en caso de no ser así, se podrían borrar bits si el segundo es el más pequeño.

Ejemplo

char n = -64;
n &= B01111111; // Con esto lo acabo de convertir en positivo; mientras que los demás bits no me interesan, por eso no los toco.

Vea también

Referencias