以下是Mike Banahan的C書的摘錄& Brady (Link: Section 2.8.2.1)。像我這樣的人沒有理由懷疑作者是錯的,除非你有別人的建議。對於非零'b',表達式「(a/b)* b + a%b - a」的表達式總是爲零嗎?
請告訴我地球人怎麼樣「(a/b)* b + a%b - a」對於b不爲零的整數總是零。
提取的文本如下:
如果操作數是負的,的/可就近 整數兩邊的真實結果,和的% 可以是正的結果的符號的結果或否定的。這兩個功能都是定義的 實現。
它始終是真的,以下表達式是等於零:
(a/b)*b + a%b - a
除非b爲0。
通常的算術轉換應用於兩個操作數。
作爲一個說明,它是在C89實現定義的。自C99以來,劃分被定義爲向0舍入(並且給定的等式仍然成立)。 – mafso 2014-09-21 17:18:13