Conceptos básicos de manipulación de bits para la programación c

Un puñado de operadores de programación C proporciona la manipulación de datos a nivel binario. Los operadores son fáciles de ignorar, pero sólo cuando su verdadero poder y utilidad no son apreciadas.

Video: Programacion en C, Conceptos basicos, Primer programa yeah!

El ~ e! operadores

Dos operadores binarios son poco frecuentes del ~ (o 1 de complemento) y el indicador! (o no). Les falta el encanto de los operadores de bits lógicos, pero tienen un lugar.

Video: Curso de C++ 12 Operadores de Desplazamiento de Bits

operador complemento del 1 voltea todos los bits en un valor, convirtiendo un 1 en un 0 y un 0 en un 1. Por ejemplo:

~ = 01010011 10101100

Los ! (NO) del operador afecta a todo el valor - todos los bits. Cambia cualquier valor distinto de cero a 0, y el valor de 0 a 1:

!01010011 00000000 =! = 00000000 00000001

Cero y 1 son los únicos dos resultados posibles cuando se utiliza el bit a bit! operador.

Video: Manipulacion de Bits - Problemas 1

Tanto el ~ e! operadores están unario operadores - simplemente prefijo de un valor para obtener los resultados.

OperadorNombreTipoAcción
&Ybit a bitMáscaras trozos, restablecer algunos bits a 0 y dejando el resto
solo
|Obit a bitEstablece los bits, el cambio de bits específicos de 0 a 1
^XORbit a bitCambia bits a 0 cuando Match- de otro modo, a 1
~1&complemento rsquo-sunarioRevierte todos los bits
~NOunarioCambia los valores distintos de cero a 0- 0 valores, a 1
los binbin () función

Dos declaraciones explican lo que está pasando en la función binbin () para que sea convertir los valores en una cadena binaria:

Video: BITSCAN: una biblioteca C++ para manipulación de bits

bin [x] = n & 0x80? `1`: `0`-n lt; lt; = 1-

La primera afirmación lleva a cabo una máscara AND con el valor n. Todos, excepto el bit más a la izquierda en el número se descarta. Si ese bit está establecido, lo que hace que sea una condición TRUE, el carácter 1 se almacena en la Expandido de lo contrario, el carácter 0 se almacena.

El valor se expresa como 0x80, que es la notación hexadecimal, un tipo de taquigrafía para binario. El valor hexadecimal 0x80 es igual a 10000000 binario, que es la y la máscara. Si el valor es de 16 bits en lugar de 8, 0x8000 se utiliza en lugar, lo que crea una máscara binaria de 16 bits.

La segunda declaración desplaza los bits en el valor n una muesca a la izquierda. Como los espines de bucle, que trabajan a través del valor n, otro bit en el valor se desplaza a la posición más a la izquierda. se evalúa esa parte, y la cadena binaria se construyó mediante la inserción de un ‘1’ ó ‘0’.

Artículos Relacionados