#include<stdio.h>
void printBinaryDigit(float *pf)
{
int n = *(int *)pf;
int sizeOfBits = sizeof(int) * 8;
int i = sizeOfBits - 1;
for(i = sizeOfBits - 1; i >= 0; i--)
{
if(n & (1 << i))
{
printf("1");
}
else
{
printf("0");
}
}
printf("\n");
}
int main()
{
float f = -1.0;
for(f = -1.0; f < 1.0; f += (float)0.1)
{
printf("%f--->", f);
printBinaryDigit(&f);
}
return 0;
}
结果:
-1.000000--->10111111100000000000000000000000
-0.900000--->10111111011001100110011001100110
-0.800000--->10111111010011001100110011001100
-0.700000--->10111111001100110011001100110010
-0.600000--->10111111000110011001100110011000
-0.500000--->10111110111111111111111111111101
-0.400000--->10111110110011001100110011001010
-0.300000--->10111110100110011001100110010111
-0.200000--->10111110010011001100110011001000
-0.100000--->10111101110011001100110011000011
0.000000--->00110011101000000000000000000000
0.100000--->00111101110011001100110011010111
0.200000--->00111110010011001100110011010010
0.300000--->00111110100110011001100110011100
0.400000--->00111110110011001100110011001111
0.500000--->00111111000000000000000000000001
0.600000--->00111111000110011001100110011011
0.700000--->00111111001100110011001100110101
0.800000--->00111111010011001100110011001111
0.900000--->00111111011001100110011001101001