공용체를 이용한다.
#include <stdint.h>
#include <stdio.h>
typedef union v32_union {
	float f;
	uint32_t u;
} v32;
typedef union v64_union {
	double f;
	uint64_t u;
} v64;
void print_float_bits (float f) {
	v32 v; v.f = f;
	uint32_t mask = 1 << 31;
	do {
		if (mask == 0x40000000 || mask == 0x400000) putchar(' ');
		putchar(v.u & mask ? '1' : '0');
	} while (mask >>= 1);
}
void print_double_bits (double d) {
	v64 v; v.f = d;
	uint64_t mask = 1ULL << 63;
	int count = 63;
	do {
		if (mask == 0x4000000000000000 || mask == 0x8000000000000) putchar(' ');
		putchar(v.u & mask ? '1' : '0');
		count--;
	} while (mask >>= 1);
}
int main(void) {
	float a = 3.1415926f;
	double b = 3.141592653589793238;
	print_float_bits(a); /* 0 10000000 10010010000111111011010 */
	putchar('\n');
	print_double_bits(b); /* 0 10000000000 1001001000011111101101010100010001000010110100011000 */
}