Python とは対照的に、C は正の除数を使用したモジュロを使用すると負の値を出力します。これは、ISO/IEC 14882:2003(E):
「両方のオペランドが非負の場合、剰余は非負です。そうでない場合、剰余の符号は実装定義。"
この定義により、除算と剰余が実行されるプロセッサ命令セットで一般的な最適化が可能になります。
負の剰余は、次のルールとの一貫性を保証します。
これは、次の場合を意味します。負の数を正の数で割ると、商は負 (またはゼロ) になります。
この仕様の理論的根拠には次のものが含まれます。
負の剰余は直感に反するように見えるかもしれませんが、これは C のモジュロの実装定義の性質の結果です。整数除算との一貫性を確保し、パフォーマンスを最適化します。
以上がC モジュロが負の数を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。