负数取模
计算机语言中常见的取模方式有两种:truncate除法和floor除法
-
truncate除法趋零取整,Java、C、JS等大多语言采用的是这种除法。
举例:
-7 % 3 = -1,7 % -3 = 1
推导:
-7 % 3 = -7 - truncate(-7 / 3) * 3 = -7 - (-6) = -1
7 % -3 = 7 - truncate(7 / (-3)) * (-3) = 7 - 6 = 1 -
floor除法趋负无穷取整,Python等语言采用的是这种除法。
举例:
-7 % 3 = 2,7 % -3 = -2
推导:
-7 % 3 = -7 - floor(-7 / 3) * 3 = -7 - (-9) = 2
7 % -3 = 7 - floor(7 / (-3)) * (-3) = 7 - 9 = -2
综上:计算负数取模时,要知道该语言采用的是哪种方式。
上面两种方式取模结果符号记忆:truncate法模的符号与被除数一致,floor法模的符号与除数一致。
少一些功利主义的追求,多一些不为什么的坚持

浙公网安备 33010602011771号