[ Foro de C ]
Hola, la mía es una pregunta muy básica, estoy aprendiendo C con el libro "aprendiendo C en 24 hs" muy bueno que no me ha dado mayores problemas hasta ahora. En el tema de modificadores de datos con signed y unsigned, el libro como ejemplo declara un signed char que inicializa con ch=0xFF. Inmediatamente en el renglón de abajo imprime:
printf("El valor decimal de signed 0xFF es %d.\n", ch);
lo que devuleve como resultado:
El valor decimal de signed 0xFF es -1.
Bien, mi pregunta es ¿de dónde carajo sale el -1?! Sé pasar un decimal negativo a binario y viceversa, pero no logro entender este resultado. Por favor, si alguien se compadece y me lo puede explicar (para que entienda un novato) se lo agradecería.
hola diego, supongo que sabes que estas introduciendo un valor en exadecimal y que la F es 1111 en binario por lo que FF rellena el valor del int con unos
como el ultimo bit es el de signo y esta activado, quiere decir que es negativo
para que lo entiendas mejor si a un entero con signo (el 0) le quitas uno tendras el -1, si lo miras bit a bit el -1 es FF en exadecimal es decir todo unos
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)