标签: gcc mod
我对GCC的%运算符进行了一些研究,如果它有负的红利,它似乎没有计算出正确的值。好吧,我知道海湾合作委员会的所有相关规则。
无论如何,-3%5是
我现在正在使用此宏来纠正此行为:
#define mod(M, N) (M>=0 ? M%N : (N-abs(M%N))%N) #define mod2(M, N) (M%N>=0 ? M%N : M%N + N)
它们都产生了正确的价值,但看起来很丑陋而且无效。 你能推荐一种更好(更快)的方法来进行这种计算吗?
感谢。