// Quiz: anyone know what's going on ? #include void PrintFloatInBits(double x) { int i; long long *p = (long long *) &x; for (i = 63; i >= 0; i--) if ( (*p & (1 << i)) != 0 ) putchar('1'); else putchar('0'); } void PrintIntInBits(long x) { int i; for (i = 63; i >= 0; i--) if ( (x & (1 << i)) != 0 ) putchar('1'); else putchar('0'); } int main( int argc, char* argv[] ) { float x = 2.0; printf("2.0 = %ld\n\n\n", x); printf("float value %f is stored as: ", x); printf("(the binary pattern): \n\t"); PrintFloatInBits(x); printf("\n\n"); printf( "float x printed with %%f: %f\n", x ); printf( "float x printed with %%d: %d\n", x ); int y = 1073741824; printf("\n\nint value %d is stored as: ", y); printf("(the binary pattern): \n\t"); PrintIntInBits(y); printf("\n\n"); }