以下是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