Error de corrección al leer un número en formato binario

0

Supongamos que tengo una cadena binaria: 1111 1001 que en decimal es -121 (forma de magnitud de signo). Pero la computadora lee esto como dos números: -7 y -1. Desde -7 y -1, ¿cómo puedo recuperar -121.?

    
pregunta user7080

1 respuesta

2

Primero: supongo que 1111 y 1001 se leen como -1 y -7 (¡No -7 y -1!).
Segundo: Supongo que por alguna razón su computadora está trabajando con valores de 4 bits. Voy a usar variables de 8 bits sin firmar para esas por ahora.

La forma más sencilla de combinar los dos valores de cuatro bits a un valor de 8 bits es concatenar los bits:

#include <stdint.h>

int8_t u8;
uint8_t u4a,u4b;

  u4a = 0x0F; // '-1' in 4 bits
  u4b = 0x09; // '-7' in 4 bits

  u8  = (u4a<<4)|u4b;
    
respondido por el Oldfart

Lea otras preguntas en las etiquetas