我正在32位Windows PC上進行一些「早期計算」,並查看了極限。32位定點溢出
現在,2 ** 32爲4,294,967,296,我發現
4294967290 + 5
是完全確定,
4294967290 + 6
很恰當溢出。
令我百思不解的是,
429496729 * 10
溢出,雖然產品,4294967290,在範圍內。
任何有興趣嗎?
我正在32位Windows PC上進行一些「早期計算」,並查看了極限。32位定點溢出
現在,2 ** 32爲4,294,967,296,我發現
4294967290 + 5
是完全確定,
4294967290 + 6
很恰當溢出。
令我百思不解的是,
429496729 * 10
溢出,雖然產品,4294967290,在範圍內。
任何有興趣嗎?
在沒有任何代碼的情況下,我猜429496729
被隱式輸入爲有符號整數,其中4294967290
太多了。
你打敗了我。結果可能是否定的證明它。 – phkahler 2011-03-02 14:19:33
謝謝同胞們,很對。實際上沒有代碼,但Visual C 6調試器監視窗口(用於我的'探測')將數字整數評估爲已簽名。實際上相當合理。無符號整數都很好。 – 2011-03-04 05:49:17
你在用什麼環境?你的編譯器/解釋器可能正在做一些不精確的邊界檢查。 – ThomasMcLeod 2011-03-02 14:00:51
這不是固定點,它是整數。定點是具有縮放的整數(例如,100 = 1.00,4323 = 43.23等等)。 – paxdiablo 2011-03-02 14:05:39
你使用哪種編程語言? – starblue 2011-03-02 15:41:59