>>18
実行環境のfloatが32bitのIEEE754形式なら、これでいい。
#include<stdio.h>
int main()
{
char str[33];
unsigned long bits = 0;
int i;
printf("32ビットの2進数を入力してください\n:");
scanf("%32s", str);
for(i = 0; str[i]; i ++)
bits = bits * 2 + str[i] - '0';
for(i = 0; i < 32; i ++)
putchar('0' + ((bits>>(31-i)) & 1));
putchar('\n');
printf("= %g\n", (double)*((float*)&bits));
return 0;
}