В C вы можете сделать это, например, таким способом, который является классическим использованием конструкции union
:
int i;
union {
double x;
unsigned char byte[sizeof (double)];
} converter;
converter.x = 5.5555555555556e18;
for(i = 0; i < sizeof converter.byte; i++)
printf("%02x", converter.byte[i]);
Если вы вставите это в main()
и запустите, оно может напечатать что-то вроде этого:
~/src> gcc -o floatbits floatbits.c
~/src> ./floatbits
ba b5 f6 15 53 46 d3 43
Обратите внимание, что это, конечно, зависит от платформы в ее порядке байтов . Вышеприведенное относится к системе Linux, работающей на процессоре Sempron, то есть с прямым порядком байтов.