El uso de scanf, cada número escrito en, me gustaría que mi programa para de impresión a cabo dos líneas: por ejemploconvertir int a flote a hexadecimal
byte order: little-endian
> 2
2 0x00000002
2.00 0x40000000
> -2
-2 0xFFFFFFFE
-2.00 0xC0000000
puedo conseguirlo para imprimir el 2 en hexadecimal pero también necesito un flotador y por supuesto i cant scanf como uno cuando necesito para escanear también como un int
si yo echo como un flotador cuando intento printf me sale un cero. Si escaneo como float obtengo la salida correcta. Intenté convertir el int en un flotador , pero todavía aparece como cero.
aquí está mi salida hasta el momento
Int - float - hex
byte order: little-endian
>2
2 0x000002
2.00 00000000
parece que me estoy convirtiendo en un flotador bien razón por la costumbre que se imprimen como un hexágono? si escaneo como flotante obtengo la representación hexadecimal correcta como en el primer ejemplo. esto debería ser algo simple. i necesito para escanear en forma decimal tenga en cuenta estoy funcionando esto en cygwin
aquí es lo que tengo hasta ahora ..
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int HexNumber;
float convert;
printf("Int - float - hex\n");
int a = 0x12345678;
unsigned char *c = (unsigned char*)(&a);
if (*c == 0x78)
{
printf("\nbyte order: little-endian\n");
}
else
{
printf("\nbyte order: big-endian\n");
}
printf("\n>");
scanf("%d", &HexNumber);
printf("\n%10d ",HexNumber);
printf("%#08x",HexNumber);
convert = (float)HexNumber; // converts but prints a zero
printf("\n%10.2f ", convert);
printf("%#08x", convert); // prints zeros
return 0;
}
¿Puede mostrarnos algún código? –
lo siento. publicado – Steller
No imprime cero cuando ingreso 1 como entrada. ¿Qué estás intentando lograr? ¿Cuál es tu número de entrada? –