Diferencia entre revisiones de «and bit a bit»
De ArduWiki
(→Referencias) |
(→Ejemplo) |
||
Línea 31: | Línea 31: | ||
== Ejemplo == | == Ejemplo == | ||
− | < | + | <syntaxhighlight lang="c++"> |
char n = -64; | 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. | + | n &= B01111111; //Con esto lo acabo de convertir en positivo; mientras que los demás bits no me interesan, por eso no los toco. |
− | </ | + | </syntaxhighlight> |
== Vea también == | == Vea también == |
Revisión del 23:05 14 jun 2019
Contenido
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í, solo se operará con los bytes menos significativos del segundo, o se podrían borrar bits si este 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
- not (!)
- and (&&)
- or (||)
- not bit a bit (~)
- or bit a bit (|)
- bitshift right (>>)
- bitshift left (<<)