浮点数转二进制接口
#include <stdio.h>
#define Type float
void typeToBit(Type f, int *bOut)
{
int len = sizeof(Type);
char *p = (char *)&f;
for (int i = len; i >= 1; i--)
{
for (int j = 8 * i - 1; j >= 8 * i - 8; j--)
{
bOut[j] = *p & 1;
*p >>= 1;
}
p++;
}
}
int main(int argc, char *argv[])
{
Type n;
int len;
scanf("%f", &n);
len = sizeof(Type) * 8;
int arr[len];
typeToBit(n, arr);
for (int i = 0; i < len; i++)
{
printf("%d", arr[i]);
if ((i + 1) % 8 == 0)
printf(" ");
}
return 0;
}
...全文