Diferencia entre revisiones de «and bit a bit»
De ArduWiki
(→Descripción) |
|||
Línea 1: | Línea 1: | ||
== Descripción == | == Descripción == | ||
− | El operador binario bit a bit | + | 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> | + | !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 == | ||
− | + | 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 | + | * 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> | ||
− | + | 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. | |
− | |||
− | |||
− | |||
</pre> | </pre> | ||
Revisión del 04: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.