#include typedef union { struct { long long unsigned sigma:52; unsigned n:11; unsigned s:1; } bits; double value; } ieeebits; // Print 52 bits in binary void p52bits(long long unsigned b){ long long unsigned i; for(i=1llu<<51;i>0;i>>=1) { putchar(b&i?'1':'0'); } } int main(){ ieeebits x; x.value=10.0; printf("x=%g\n",x.value); printf("sigma=%llx\n",(long long unsigned)x.bits.sigma); printf(" n=%u\n",(unsigned)x.bits.n); printf(" s=%u\n",(unsigned)x.bits.s); printf("\nInterpretation in binary disregarding special cases:\n"); printf("%c1.",x.bits.s?'-':'+'); p52bits(x.bits.sigma); printf("*2^%d\n",x.bits.n-1023); return 0; }