负数取模不一定是正数

这两天写了个程序,其中有用到取模的操作

一直以来, 我都默认:

-n mod m = (m-n) mod m
也就是:  -3 mod 12 = (12-3) mod 12 = 9

不过程序的结果并不是这样, 而是出来一个非常奇怪的结果, 于是分别用微软的计算器和google的计算器算了下:
微软计算器:    -3 mod 12 = -3
google计算器:  -3 mod 12 = 9

网上查了下,负数取模似乎和编译器有关. 所以, 如果我们的程序中如果有对负数取模时, 应该显示的转换成正数再求, 
否则可能得到意想不到的结果.

原文地址:https://www.cnblogs.com/vanishfan/p/3108092.html