unsigned__int64 difference;
difference=(64*33554432);
printf ("size %I64u \n", difference);
difference=(63*33554432);
printf ("size %I64u \n", difference);
第一個#是可笑的大。第二個數字是正確的答案。如何將其從62更改爲63會導致此類變化?來自unsigned_int64的意外行爲;
第一值18446744071562067968 第二值2113929216
對不起的值分別爲64和63,而不是63和62
你可以添加你看到的結果嗎?你還可以發佈你的*實際*代碼嗎? (這不可能,因爲沒有'difference3')。 – 2011-04-11 22:54:31
糟糕,代碼非常簡單..我顯然意味着區別不區別3抱歉 – Jake 2011-04-11 23:07:11
C++沒有'unsigned__int64'。您正在使用特定於實現的擴展或庫。陳述你的平臺。 – 2011-04-11 23:39:35