Cómo convertir código fuente en lenguaje C y código complementario
El código original, el código complemento y el código complemento de números negativos son diferentes.
Tome dos bytes (16 bits) como ejemplo (tipo corto) para entender:
(-1)Original = 1000000000001 El bit más alto es el bit de signo 1 es negativo, 0 es positivo, la longitud total de los datos es de 16 bits.
Inversa de (-1) = 11111111165438+.
(-1) complemento = 11111111165438+.
Entonces, veamos el complemento de -12345:
(-12345) texto original = 101 0000 001 1 001.
Inversa de (-12345) = 1111111100 010.
(-12345) complemento = 1111111100065438+.
Siento que tu comprensión es errónea porque no entiendes que los datos se almacenan en bytes. La unidad de almacenamiento de datos más pequeña en una computadora es un byte y un byte ocupa 8 bits. En términos generales, el tamaño del espacio de almacenamiento de datos (máquina de 32 bits) se define como:
Carácter 1 byte
2 bytes cortos
byte int
p>Longitud 4 bytes
Coma flotante 4 bytes
Doble 8 bytes
En programas en lenguaje C, puede usar el comando sizeof para verificar la tamaño de un cierto tipo de espacio, como por ejemplo: printf ("%d", sizeof (long)); puedes escribir tu propio programa para probar tu máquina.