Red de conocimientos sobre prescripción popular - Conocimiento dental - Por ejemplo, en un programa en lenguaje C, el valor del número sin signo A es negativo. ¿Por qué el resultado de salida es 64870?

Por ejemplo, en un programa en lenguaje C, el valor del número sin signo A es negativo. ¿Por qué el resultado de salida es 64870?

Los números negativos se almacenan en la memoria en forma de complemento a dos,

Es decir -666

Código original: 1000 0010 1001 1010.

Código inverso: 111111101010101 (el bit de signo permanece sin cambios y el resto de bits se invierten).

Código de complemento: 111101110011110 (anticode 1

Es decir, los datos reales en la memoria son 0b 1111011101165438 = 64870.

Y a es un int corto sin firmar , Por lo tanto, la retroalimentación debería ser un número positivo de 64870.