[問題] Dev-C++ 4992版本
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++ 4992版本, C++
平台是winXP 32bit
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
跑下面這段程式:
double x = 1.0;
int p = 0
while( x != x + 1)
{
x*=2;
++p;
printf("PreCheck:%d %lf -- %lf = %lf\n", (x != x + 1), x, x+1 ,x -
(x+1));
if ( x == x + 1 ) break;
printf("\n\n");
}
printf("%lf, %d\n",x,p);
預期的正確結果(Expected Output):
理論上p最後的值是52 但是在DevC++ 上面跑出來是64
把這段code拿到 codepad上面跑可以得到正確的答案
請問是怎麼回事呢???
另外那行印出來檢查的那行, 印出來的x以及x+1的值在52之後 x 跟 x+1的值的確會相等,
不知道為什麼這個判斷: x != x + 1 , 還是判斷成不相等, 我甚至把bit pattern
印出來, 的確是一模一樣, memcmp也是return 0, 就是見鬼的還是會output 64....XD
請各位先進幫忙解惑一下 謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.43.210.30
推
11/30 18:33, , 1F
11/30 18:33, 1F
→
11/30 18:36, , 2F
11/30 18:36, 2F
→
11/30 18:36, , 3F
11/30 18:36, 3F
推
11/30 18:39, , 4F
11/30 18:39, 4F
→
11/30 18:40, , 5F
11/30 18:40, 5F
→
11/30 18:48, , 6F
11/30 18:48, 6F
推
11/30 18:58, , 7F
11/30 18:58, 7F
→
11/30 19:00, , 8F
11/30 19:00, 8F
→
11/30 19:51, , 9F
11/30 19:51, 9F
→
11/30 19:52, , 10F
11/30 19:52, 10F
推
11/30 20:19, , 11F
11/30 20:19, 11F
→
11/30 21:03, , 12F
11/30 21:03, 12F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章