/* * print unsigned char (byte) in binary form */ #include #include void printbits_double(double v) { int i; long *j = (long *) &v; static const int bitsperbyte = 8; int nbits = bitsperbyte*sizeof(v); if (sizeof(long) != sizeof(v)) { fprintf(stderr, "In the file %s, ", __FILE__); fprintf(stderr, "line %d, ", __LINE__); fprintf(stderr, "function %s: ", __func__); fprintf(stderr, "inconsistent lengths! Exiting ...\n"); exit(5); } for(i = nbits-1; i >= 0; i--) { if ( (i == 51) || (i == 62)) putchar(' '); putchar('0' + (((*j) >> i) & 1)); } }