#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;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkaW50Lmg+CiNpbmNsdWRlPGZsb2F0Lmg+CiAKaW50IG1haW4oKXsKIAogICAvLyDku6XkuIvmmK8gMC4wMDM5MDYyNSDkuozpgLLkvY3ooajnpLooSUVFRSA3NTQpCiAgIGNoYXIgKnN0ciA9ICIwMDExMTExMTAxMTEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIjsKCiAgIGRvdWJsZSBiID0gMDsKCiAgIHVpbnQ2NF90ICpwdHIgPSAodWludDY0X3QqKSZiOwoKICAgaW50IGk7CiAKICAgZm9yKGkgPSAwOyBpIDw9IDYzOyArK2kpewogICAgICAqcHRyIHw9ICgodWludDY0X3QpMSA8PCAoNjMgLSBpKSkgKiAoc3RyW2ldIC0gJzAnKTsKICAgfQoKICAgcHJpbnRmKCIlLipmXG4iLERCTF9ESUcsYik7CiAKICAgcmV0dXJuIDA7Cn0=