NevemTeve Creative Commons License 2011.12.21 0 0 7

Ebben segíthet egy apró csalás: ez a program kiírja a lebegőpontos számot binárisan, tehát segíthet kitalálni, hogy mit/mennyivel kell növelni.

 

/* float.c */

#include <stdio.h>

static void Test (double d);

int main (void)
{
    Test (20);
    Test (21);
    Test (22);
    Test (21.5);
    Test (21.25);
    Test (21.125);
    Test (21.1);
    Test (1);
    Test (0.5);
    Test (0.25);
    Test (0.125);
    Test (0.1);

    return 0;
}

static void Test (double d)
{
    size_t i;

    printf ("%6g is ", d);
    for (i=0; i<sizeof (d); ++i) {
        printf ("%02x", ((unsigned char *)&d)[i]);
    }
    printf ("\n");
}