He asignado el valor de complemento en una variable sin signo.¿Por qué este programa C genera un número negativo?
Entonces, ¿por qué este programa C emite un número negativo?
#include<stdio.h>
#include<conio.h>
int main()
{
unsigned int Value = 4; /* 4 = 0000 0000 0000 0100 */
unsigned int result = 0;
result = ~ Value; /* -5 = 1111 1111 1111 1011 */
printf("result = %d", result); /* -5 */
getch();
return 0;
}
Su pregunta debería ser: "¿Por qué el compilador no emite una advertencia cuando compilo este código?". La respuesta es: "Suba las advertencias en el compilador. (Por ejemplo, -Wall)" –