LINUX.ORG.RU

История изменений

Исправление io, (текущая версия) :

Если есть желание именно 3FC, то можно расширить программочку предыдущего автора:

#include <stdio.h>
#include <stdint.h>
union
{
    uint64_t v;
    float f;
    double d;
} u;


int main(int argc, char* argv[]){
    u.f = 0.2f;
    printf("%lX\n", u.v);
    u.d = 0.2f;
    printf("%llX\n", u.v);
}

Имеем:

$ ./float
3E4CCCCD
3FC99999A0000000

Исходная версия io, :

Если есть желание именно 3FC, то можно расширить программочку предыдущего автора:

#include <stdio.h>
#include <stdint.h>
union
{
    uint64_t v;
    float f;
    double d;
} u;


int main(int argc, char* argv[]){
    u.f = 0.2f;
    printf("%lX\n", u.v);
    u.d = 0.2;
    printf("%llX\n", u.v);
}

Имеем:

$ ./float
3E4CCCCD
3FC999999999999A