El operador bitwise opera con bits y realiza operaciones gradualmente. Los operadores de desplazamiento ejecutan la transición requerida desde el operador izquierdo al operador derecho. El operador apropiado debe ser positivo. Los bits que se han dejado vacíos son reemplazados por cero.
Adquirimos un dígito binario y cambiamos su valor hacia el oponente cada vez que revertimos un poco. Veamos cómo intercambiar bits en C:
Usando el operador bitwise para revertir cada bit de un entero:
Alternar o revertir el estado de bits existente se considera voltear un poco. Ejecutaríamos un bucle que comienza 0 hasta la medida del entero e intercambiaríamos cada bit uno a la vez para revertir cada elemento de valores binarios.
Por otro lado, el lenguaje de programación C ofrece un operador de complemento bitwise ~ que se puede usar para esa tarea. El complemento bit a bit examina el componente del bit de argumento. Mientras que, si el valor apropiado del operando es 0, se convierte en 1; o de lo contrario, asigna a 0. Aquí hay un programa C que contiene e invierte cada elemento de un número binario con la ayuda de un operador bit a bit ~.
#incluir
int main ()
int n, Flippednum;
printf ("Ingrese un número:");
scanf ("%d", & n);
FlippedNum = ~ n;
printf ("número real = %d (en decimal) \ n", n);
printf ("valor después de voltear los bits = %d (en decimal)", FlippedNum);
regresar 0;
En este ejemplo, en primer lugar, incluimos la biblioteca . Luego llamamos a la función principal (). Aquí inicializamos dos variables. Una variable, 'n', tiene un tipo de datos enteros, y la otra variable, 'Flippednum', almacena el valor que queremos voltear.
Además de esto, utilizamos la función printf () para mostrar la declaración 'Ingrese un número'. Entonces el usuario ingresa a cualquier valor de su propia elección. Se llama al método scanf (). Este método se utiliza para indicar los datos configurados. Aplicamos el comando 'FlippedNum' para que el valor ingresado por el usuario esté siendo volcado. Volteamos los bits usando el signo del complemento bit a bit ~.
En el siguiente paso, el método printf () se aplica primero para imprimir el número real, y luego imprime el valor después de voltear los bits del número ingresado. Terminamos el programa por comando de return 0.
Use For Loop para voltear los bits:
Iteramos a través de cada uno de los bits del número. Tomamos un entero sin firmar, volteamos cada uno de sus elementos y obtenemos el entero que ha volcado en este escenario.
#incluir
#incluir
unsigned int revbits (unsigned int n)
unsigned int number_of_bits = sizeOf (n) * 8;
unsigned int rev_num = 0, j, temp;
para (j = 0; j < NUMBER_OF_BITS; j++)
temp = (n & (1 << j));
if (temp)
rev_num | = (1 << ((NUMBER_OF_BITS - 1) - j));
return Rev_num;
int main ()
Unsigned int a = 5;
printf ("%u", revbits (a));
getchar ();
Aquí, vamos a comenzar el programa integrando los archivos de encabezado y . Aquí pasamos la variable 'sin firmar N', que tiene un tipo de datos enteros. Declaramos una nueva variable que almacena el número de bits. Aquí multiplicamos el tamaño del entero por 8. Luego inicializamos una variable 'rev_num' que almacena el número volcado.
También inicializamos una variable para las variables 'For Loop' y 'Temp' que contiene temporalmente el valor volteado del entero definido. Además de esto, utilizamos un bucle. Declaramos una variable 'j' dentro del bucle y aplicamos la condición en la variable de que su valor debe ser inferior a varios bits. La última parte del bucle for muestra un incremento en el valor de la variable 'j'. Luego usamos la condición "if" en la variable 'temp'. Esto muestra que si 'Rev_n' no es igual al número de bits, entonces la declaración de retorno devuelve el valor de 'Rev_n',
Además, la función Main () se aplica para probar el método mencionado anteriormente. Ahora inicializamos la variable 'sin firmar' que tiene un tipo de datos enteros. El método printf () ahora muestra el valor del entero después de invertir los bits. Al final, empleamos la función getchar (). Aquí el método getchar () solo toma un personaje como argumento.
Use While Loop para voltear los bits:
Aquí tenemos que seguir agregando los bits de un entero en números inverso hasta que el entero sea igual a cero. Intercambie los bits sobrantes del número de reverso una vez que el número definido llega a cero.
#incluir
#incluir
unsigned int revbits (unsigned int n)
Unsigned int count = sizeOf (n) * 8 - 2;
unsigned int rev_n = n;
n >> = 2;
mientras (n)
rev_n = 2;
contar--;
rev_n <<= count;
return Rev_n;
int main ()
sin firmar int a = 7;
printf ("%u", revbits (a));
getchar ();
Al comienzo del programa, incorporamos los archivos de encabezado y . Luego definimos una función que invierte los bits. La variable 'sin firmar n' tiene un tipo de datos enteros; Por lo tanto, lo proporcionamos aquí. Creamos una nueva variable para retener el recuento del número de bits. El tamaño del entero se multiplica por ocho en este caso. Luego, adquirimos una variable llamada 'Rev_num' para mantener el número volcado.
También construimos una variable para el bucle While y aplicamos la condición en esta variable. Además de esto, utilizamos un bucle de tiempo. Dentro del bucle While, empleamos la condición de que si el 'Rev_n' es menor o igual a 2 o si el 'Rev_n' no es igual al valor de 'n', disminuimos el recuento. Así es como obtenemos el valor de "rev_n '.
Ahora, aplicamos la función Main (), y aquí inicializaremos la variable 'Unsigned A' estableciendo el valor de esta variable. El tipo de datos de esta variable es un entero. Después de revertir los bits, el método printf () devuelve el resultado. Además, hemos usado la función getChar ().
Conclusión:
En este artículo, hemos examinado los métodos para voltear los bits en el idioma C. En la primera situación, tomamos cualquier número entero del usuario, y luego utilizamos el operador bit a bit ~ para revertir todos los bits del número definido. Luego observamos cómo voltear los bits usando para y mientras el bucle.