#include #include void printhex (double val); int main (int argc, char *argv[]) { double eps, onepluseps; eps = 2.0; printf ("size of double: %d\n", sizeof(double)); printf ("size of float: %d\n", sizeof(float)); printf ("size of int: %d\n", sizeof(int)); printf ("size of long int: %d\n", sizeof(long int)); printf ("size of long long int: %d\n", sizeof(long long int)); while (1) { onepluseps = 1.0 + eps; if (onepluseps == 1) break; eps = 0.9 * eps; } printf ("eps = %20.18lg\n", eps); printf ("1 + eps = %022.18le\n", 1.0 + eps); printhex (1.0 + eps); eps = eps / 0.9; printf ("1 + 1.1*eps = %022.18le\n", 1.0 + eps); printhex (1.0 + eps); printhex (2.0); printhex (3.0); printhex (4.0); printhex (0.0); printhex (-1.0); printhex (sqrt(2.0)); return (0); } void printhex (double val) { printf ("%022.18le: ", val); printf ("%016llx\n", val); }