#include<stdio.h>
#include<stdint.h>
#include<float.h>
 
int main(){
 
   // 以下是 0.00390625 二進位表示(IEEE 754)
   char *str = "0011111101110000000000000000000000000000000000000000000000000000";

   double b = 0;

   uint64_t *ptr = (uint64_t*)&b;

   int i;
 
   for(i = 0; i <= 63; ++i){
      *ptr |= ((uint64_t)1 << (63 - i)) * (str[i] - '0');
   }

   printf("%.*f\n",DBL_DIG,b);
 
   return 0;
}