Así que estoy retocando con C y quería ver si podía asignar un valor binario a un entero y usar la función printf() para generar un valor con signo o sin signo. Pero a pesar de obtener el mismo resultado, pensé que obtendría la mitad del valor para imprimir el firmado en comparación con el sin firmar. Estoy usando Code :: blocks y GCC.¿Por qué obtengo el mismo valor cuando imprimo este int?
¿printf() ignora el% i &% u y usa la definición de variable?
Código de ejemplo:
#include <stdio.h>
#include <stdlib.h>
int main()
{
signed int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
mismo resultado si se cambia el int a firmar:
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned int iNumber = 0b1111111111111111;
printf("Signed Int : %i\n", iNumber);
printf("Unsigned Int : %u\n", iNumber);
return 0;
}
¿Estás seguro de que tus tipos int tienen solo 16 bits de ancho? –
¿Qué es 'charCount'? – Donotalo
Tenga en cuenta que la sintaxis constante binaria como '0b1111' no es el estándar ISO C. –