与 Python 不同,C 在使用正除数模时输出负值。发生这种情况是因为该操作是根据 ISO/IEC 14882:2003(E) 在 C 中实现定义的:
“如果两个操作数均为非负,则余数为非负;如果不是,则余数的符号为实现定义。”
此定义允许在执行除法和取模的处理器指令集中常见的优化
负余数确保与以下规则的一致性:
这意味着当负数除以正数时数,商将为负数(或零)。
此规范的基本原理包括:
虽然负余数可能看起来违反直觉,但它是 C 中模数的实现定义性质的结果。它确保与整数除法的一致性并优化性能。
以上是为什么 C 模运算返回负数?的详细内容。更多信息请关注PHP中文网其他相关文章!