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.?
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.?
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;
Lea otras preguntas en las etiquetas digital-logic binary