#include void printBits(int i) { int k; for (k = 31; k >= 0; k--) if ( (i & (1 << k)) == 0 ) putchar('0'); else putchar('1'); } int main() { /* 01000000101000000000000000000000 IEEE 754 code: 0 10000001 01000000000000000000000 ^ ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ + = 2 = 1.01 */ int i = 0b01000000101000000000000000000000; // Binary constant void *p = &i; printf("\n\nInternally, i is stored as: "); printBits(i); printf("\n\n"); printf("Show i as int: %d\n", *(int *)p ); printf("Show i as float: %f\n", *(float *)p ); }