#include #include #include using namespace std; void print_digit(int dig) { if (dig) { cout << "1"; } else { cout << "0"; } } void print_float(float x){ int i,j,base; unsigned char * ch; int bc; ch = (unsigned char * ) &x; cout << setw(10) << x<< " "; bc = 0; for(j=3;j>=0;j--) { base=128; for (i=0;i<8;i++){ print_digit(base & ch[j]); base = base/2; bc++; if (bc == 1) { cout << " "; } if (bc == 10) { cout << " "; } } bc++; if (bc == 10) { cout << " "; } } cout << endl; } int main () { float x; cout << " A float is " << sizeof (x) << " bytes " << endl; for (x=-2;x<35;x+=1){ print_float(x); } print_float(0.5); print_float(0.25); print_float(0.125); print_float(0.625); print_float(1.0/pow(2,128.0)); print_float(1.0/pow(2,129.0)); print_float(1.0/pow(2,130.0) + 1.0/pow(2,129.0) + 1.0/pow(2,128.0)); print_float(1.0/2.0e-40); print_float(sqrt(-7.0)); }