(float x;) , " " .
, x < 0. , - . , .
. , , .. int integer = x;. , base-10 log10(). . log10(0) - undefined, . 0 , , 10 ^ digit_index, 10- ().
for (i=digits; i>=0; i--)
dig = (integer / pow(10,i)) % 10;
..
( , ) . , 10 ^ frac_digits. , ( ).
C , .
IEEE . , 3,57 × 10 2 357.0. -. "" , 1 . , , .
, , " ". - . .
float printf , . , , , . , float double. , ( hex ), 2 64- :
double f, double f
0xabcdefgh 0xijklmnop 0xabcdefgh 0xijklmnop
printf int, double. , 32- int, printf, , , printf, . .
To get an integer representation, you will need to use piracy with a pointer.
printf("%d %f\n", *(int *)&f, f);
What reads (from right to left): take the address of the float, treat it as a pointer-to-int, follow the pointer.