Cómo cambiar los valores binarios de programación c

El lenguaje de programación C cuenta con dos operadores binarios que llevan a cabo la operación equivalente de la “Todo el mundo dar un paso hacia la izquierda (o derecha).” lt; lt; y gt; gt; operadores de desplazamiento bits de valor, marchando hacia la izquierda o hacia la derecha, respectivamente. Aquí está el formato para el lt; lt; operador:

v = int lt; lt; contar-

int es un valor entero. recuento es el número de plazas desplazan los bits del valor a la izquierda. El resultado de esta operación se almacena en la variable v. Todos los bits que se desplazan a la izquierda más allá de la anchura de la int variable x Esta perdido. Los nuevos bits desplazados desde la derecha son siempre 0.

Al igual que con la mayoría sin sentido binario, que ayuda a ver visualmente lo que está pasando en un valor cuando se desplazan los bits.

Todo el mundo fuera de la piscina!

Video: [Método Fácil] Convertir de Binario a Decimal y viceversa

Char #include * binbin (int n) -INT main () {int BDesplace, x-printf ("Escriba un valor de 0 a 255: ") -scanf ("%re",&BDesplace) -para (x = 0-XLT; 8-x ++) {printf ("% sn", Binbin (BDesplace)) - BDesplace = BDesplace lt; lt; 1-} de retorno (0) -} char * binbin (int n) {bin static char [9] -INT x-para (x = 0-XLT; 8-x ++) {bin [x] = n & 0x80? `1`: `0`-n lt; lt; = 1-} bin [x] = `` -Retorno (bin) -}

La operación de desplazamiento se realiza en la línea 15 en todo el mundo fuera de la piscina !. El valor en la variable BDesplace se desplaza a la izquierda un poco.

Video: Ejercicios Java & C++ 18 - Pasar un número a binario (Strings)

Ejercicio 1: Escriba el código fuente de todo el mundo fuera de la piscina! en su editor y construir un nuevo proyecto.

El efecto neto de un desplazamiento de bits a la izquierda es duplicar un valor. Eso es válido hasta cierto punto: Obviamente, cuanto más lejos queda usted cambia, algunos bits se pierden y el valor deja de doblar. Además, este truco sólo funciona para los valores sin signo.

ejercicio 2: Modificar el código fuente de todo el mundo fuera de la piscina! de modo que la función printf (), en la línea 14 también muestra el valor decimal de la BDesplace variable. También debe modificar la función binbin () para que muestre 16 dígitos en lugar de 8.

Aquí está la salida cuando se utiliza el valor 12:

Escriba un valor de 0 a 255: 120000000000001100 120000000000011000 240000000000110000 480000000001100000 960000000011000000 1920000000110000000 3840000001100000000 7680000011000000000 1536

Probar el valor de 800 millones (no escriba las comas) para ver cómo la regla duplicación falla ya que los valores siguen desplazando hacia la izquierda. También vea la barra lateral cercana “números binarios negativos.”

los gt; gt; operador de desplazamiento funciona de manera similar a la lt; lt; cambio del conductor, aunque los valores se marcharon a la derecha en vez de la izquierda. Cualquier bit de que marcharon fuera del extremo derecho se descarta y sólo se insertan bits cero en el lado izquierdo. Aquí está el formato:

v = int gt; gt; contar-

int es un valor entero, y contar es el número de plazas para desplazar los bits a la derecha. El resultado se almacena en la variable v.

ejercicio 3: Modificar el código fuente del Ejercicio 2 para que el operador de desplazamiento a la derecha se utiliza en lugar de la desviación a la izquierda en la línea 15. Construir el programa.

Aquí está el resultado cuando se utiliza el valor de 128:

Escriba un valor de 0 a 255: 1280000000010000000 1280000000001000000 640000000000100000 320000000000010000 160000000000001000 80000000000000100 40000000000000010 20000000000000001 1

A diferencia de la lt; lt; operador, el gt; gt; está garantizada para cortar siempre el valor por la mitad cuando se desplaza un dígito a la derecha. De hecho, la gt; gt; operador es mucho más rápido de usar en un valor entero que el operador / (división) para dividir un valor por 2.

los lt; lt; y gt; gt; operadores están disponibles sólo en el lenguaje C. En C ++, los operadores similares se utilizan para recibir la entrada estándar y enviar la salida estándar.

Los números binarios son siempre positivos, teniendo en cuenta que los valores de un bit puede ser sólo 1 o 0 y no -1 y 0. Entonces, ¿cómo hace el equipo enteros con signo? Fácil: Se engaña.

El bit más a la izquierda en un valor binario con signo es conocido como el bit de signo. Cuando ese bit se establece (igual a 1), el valor es negativo para un int firmado. De lo contrario, el valor es leído como positivo.

En este ejemplo, el bit de signo se establece para un char firmado. Los valores expresados ​​son negativos, que está en el rango de una variable de tipo char firmado.

En este ejemplo, el bit de signo es ignorado porque el valor es un unsigned char. Los valores sólo pueden ser positivos, por lo que el rango positivo para una variable sin signo es mayor que para una variable firmado.

Artículos Relacionados