Un cambio aritmético a la izquierda de una posición transfiere cada bit a la izquierda por solo uno. Es lo mismo que el cambio lógico izquierdo. Un cambio aritmético derecho de una posición cambia cada bit a la derecha a través de uno. Al multiplicar o dividir un número entero, se podrían usar funciones de cambio aritmético. Multiplicar un número de 2n, en el que n representa el número de ubicaciones de bits intercambiadas, es el resultado de un método de cambio izquierdo. Divide un número por 2n es el resultado de un método de cambio derecho, donde N representa el número de ubicaciones de bits conmutadas.
Este artículo demostrará algunas técnicas utilizando funciones de turno bit a bits en c.
Mueva el entero hacia la izquierda usando el << Operator
Cada idioma incluye técnicas de cambio de bit a bit, que reubican cada parte de un número especificado por el número requerido de ubicaciones. Para evaluar adecuadamente el impacto de estos métodos, introduciríamos la función binaria en la situación anterior, que muestra la forma binaria del número proporcionado.
Este método solo está construido para operar con números de 32 bits. El siguiente código ilustra un cambio de cuatro izquierdas y presenta los valores numéricos correspondientes:
#incluir
#incluir
Vacío binario (NUM sin firmar)
sin firmar j;
para (j = 1 < 0; j /= 4)
(Num y J) ? printf ("1"): printf ("0");
int main (int argc, char *argv [])
int num1 = 456;
binario (num1); printf (": %d \ n", num1);
num1 <<= 4;
binario (num1); printf (": %d \ n", num1);
salir (exit_success);
Primero, presentamos dos bibliotecas y . En el siguiente paso, definimos la función binaria (). Mientras tanto, declaramos un parámetro "NUM sin firmar" a la función binaria (). Utilizamos un bucle para. Aquí, inicializamos una variable dentro de la bucle. El bucle itera hasta que el valor alcanza 31. Ahora, empleamos la función principal () fuera del cuerpo de la función binaria (). Se inicializa una variable que tiene un tipo de datos enteros. Del mismo modo, creamos un constructor con un tipo de datos de caracteres.
Declaramos una variable "num1" y especificamos su valor. A continuación, este valor se proporciona como un argumento a la función binaria (). La función printf () se usa para mostrar el valor binario del número definido. El << operator is applied to the value of the variable “num1”. Therefore, it is used to adjust the digits to the left. Now, the binary() and print() methods are utilized to print the result after shifting the numbers.
Utilice el cambio izquierdo para multiplicar un número con cuatro:
Utilizaremos el cambio de izquierda << more effective operation to accomplish the multiplication by four. It's important to note that there is no distinction between the logical and arithmetic shifts while moving left.
Un cambio de posición específico conduce a la multiplicación; En consecuencia, podemos cambiar a cualquier lugar para adquirir la multiplicación apropiada.
#incluir
#incluir
Vacío binario (NUM sin firmar)
sin firmar k;
para (k = 1 << 31; k > 0; k /= 4)
(Num y K) ? printf ("1"): printf ("0");
int main (int argc, char *argv [])
int num1 = 678;
printf ("%d \ n", num1);
num1 <<= 1;
printf ("%d x 4 \ n", num1);
salir (exit_success);
Al comienzo del programa, dos archivos de encabezado y se incluyen justo antes de la declaración del método binario (). Dentro de la función binaria () para el bucle se está utilizando, la variable 'k' se inicializa aquí. La función printf () también se usa para imprimir el valor en forma de 1s y 0s. Además, definimos la función principal (). Esta función contiene dos parámetros, incluida una variable y un constructor. El tipo de datos de esta variable y constructor no es idéntico.
Además, creamos otra variable y establecemos el valor de esta variable. Aplicamos una función print () para demostrar el valor binario real del número dado. En el siguiente paso, utilizamos el << operator to move the digits to the left of the defined value. Once again, the printf() method gets the output after shifting the digits and multiplying the value by 4. In this way, we have to end the code.
Mueva los enteros hacia la derecha, use el operador >>
Vale la pena mencionar que los números firmados y sin firmar se expresan de manera diferente. Los firmados, en particular, se interpretan como dos enteros complementarios. Por lo tanto, el tipo de valor negativo más frecuente es 1, que se conoce como el bit firmado, mientras que los números positivos comienzan con 0. Como resultado, si transferimos analíticamente los dígitos negativos correctos, eliminamos el signo y obtenemos el número positivo. 2
Por lo tanto, debemos distinguir entre cambios lógicos y aritméticos, con el primero reteniendo su bit más importante. Aquí, realizamos el cambio aritmético y conservamos el valor negativo del número, como se demostró en el siguiente resultado de ejemplo:
#incluir
#incluir
Vacío binario (NUM sin firmar)
sin firmar l;
para (l = 1> = 5;
binario (num2); printf (": %d \ n", num2);
salir (exit_success);
Aquí, tenemos que integrar las bibliotecas requeridas y . La función binaria () se llama en el siguiente paso. Además, presentamos un argumento de "Número sin firmar" dentro de ese método binario (). Hemos usado para bucle y adentro para bucle, tenemos que definir una variable. Hemos usado la función Main () fuera del cuerpo de la función binaria (). Hacemos un constructor con un tipo de datos de caracteres y declaramos una variable con un tipo de datos enteros.
Además, se inicializa una variable llamada "num1" y se asigna el valor. Este valor se pasa al método binario () como parámetro. La función printf () muestra el valor binario de un número dado. El operador >> se usa para mover los dígitos a la derecha aplicándolo al valor de la variable "num1". Desde que cambiaba los dígitos, las funciones binarias () e printf () se han aplicado para imprimir el resultado. Entonces el método Exit () se usa para finalizar el programa.
Conclusión
Hemos discutido los detalles del cambio aritmético y lógico en el idioma C. Hemos observado cómo mover los enteros hacia la derecha con la ayuda del operador >> a la izquierda utilizando el << operator. Here, we also use the left shift to multiply a number.