https://stackoverflow.com/questions/1697425/how-to-print-out-each-bit-of-a-floating-point-number
1 直接将内存中的位输出了
每个输出一个char,然后输出为16进制。
还是么有二进制,自己再把16进制转换为2进制吧。
static void printme(void *c, size_t n)
{
unsigned char *t = c;
if (c == NULL)
return;
while (n > 0) {
--n;
printf("%02x", t[n]);
}
printf("\n");
}
void fpp(float f, double d)
{
printme(&f, sizeof f);
printme(&d, sizeof d);
}
2
float myfloat = 254940.4394f;
printf("0x%p", *(void**)(&myfloat));
3 自己转换,没有精度丢失
#include <stdio.h>
#include <stdlib.h>
void output_binary_fp_number(double arg)
{
double pow2;
if ( arg < 0 ) { putchar('