/* Dec2Norm.C */ /* Program 1.3 page 10 */ #include
#include
#include
main() { int mantissa[26],i,l,k,index; float p,dec; char ans = 'y'; printf("\nDecimal to Normalize Floating Point\n\n"); while( ans == 'Y' || ans =='y') { printf("\n\nEntry Decimal number = ");scanf("%f",&dec); l =0; k = 1; i= log(dec)/log(2.0) + 2; do { if (i < -200) exit(0); p = pow(2.0,(float)(i-1)); if (dec >= p) { mantissa[k] =1; dec = dec - p; if ( l == 0) { index = i; l =1; } } else { if(k >1) mantissa[k]=0; } if ( l>0) k=k+1; i=i-1; }while (k<25); printf("--------------------\n"); printf("Binary\n Mantissa = "); for (k=1;k <=24; k++) { printf("%d", mantissa[k]); if(k/4*4 ==k) printf (" "); } printf("\n Exponent = %d\n",index); printf("-------------------\n"); printf("Continue? (y/n)\n"); ans = getch(); } return 0; }
วัชระ รอดสัมฤทธิ์