Red de conocimiento informático - Computadora portátil - Programa C: char c1=197, c2=198, ¿qué valor decimal se generará y por qué?

Programa C: char c1=197, c2=198, ¿qué valor decimal se generará y por qué?

Punto de prueba 1: la variable de tipo char almacena el código ASCII del carácter interno, que es un valor decimal. Ocupa 1 byte, entero sin signo. Entonces el rango de representación es 0-255. El número entero de char a int debe considerar la cantidad de números positivos y negativos.

Punto de prueba 2: El complemento de un número negativo: El complemento de un número negativo es complementar el recíproco del código original bit a bit, excepto el bit de signo, luego suma 1 al número entero;

Luego hacemos lo contrario:

El número binario correspondiente a 197 es: 11000101, independientemente del bit de signo. Resta 1 = 11000100, luego todos los números opuestos excepto el bit de signo = 10111011, el primer 1 representa un número negativo y el siguiente 0111011 escrito en decimal es igual a 32 + 16 + 8 + 2 + 1 = 59, por lo que después de la neutralización es - 59. De manera similar, el %d correspondiente de char2 = 198 es -58

¡Buena suerte para ti!