div.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. /* dieses Programm belegt einen Fehler in der integer division */
  2. #include <iostream.h>
  3. #include <math.h>
  4. #include <LEDA/bigfloat.h>
  5. void binout (ostream &,integer);
  6. int main (void)
  7. {
  8.   integer a=integer(26118786) << 32;
  9.   a=a + 3762119088;
  10.   integer b=17;
  11.   double a_dbl=26118786;
  12.   a_dbl=a_dbl * pow(2,32);
  13.   a_dbl=a_dbl + 3762119088;
  14.   double b_dbl=17;
  15.   char *out;
  16. //  ieee_flags("set","direction","tozero",&out);
  17.   cout << "a:           " << a << "n";
  18.   cout << "b:           " << b << "n";
  19.   /* wir haben hier die bigfloat Konvertierung vorgenommen, um vergleichbare
  20.      Ausgaben zu erreichen */
  21.   cout << "a_dbl:       " << bigfloat(a_dbl).tointeger() << "n";
  22.   cout << "b_dbl:       " << b_dbl << "n";
  23.   cout << "a/b:         " << (a/b) << "n";
  24.   cout << "a_dbl/b_dbl: " << bigfloat(a_dbl/b_dbl).tointeger() << "n";
  25.   cout << "das ganze in Binaerstellen:n";
  26.   cout << "a/b=         ";
  27.   binout(cout,bigfloat(a/b).get_significant());
  28.   cout << "n";
  29.   cout << "a_dbl/b_dbl= ";
  30.   binout(cout,bigfloat(a_dbl/b_dbl).get_significant());
  31.   cout << "n";
  32.   
  33. }
  34.