負の値でのモジュロ演算子の動作を理解する
モジュロ演算子は、負のオペランドとともに使用すると異なる結果が得られることが知られています。これをさらに詳しく説明するために、次の操作を考えてみましょう。
std::cout << (-7 % 3) << std::endl; // Output: -1 std::cout << (7 % -3) << std::endl; // Output: 1
ISO 規格による根拠
ISO14882:2011(e) 5.6-4 によると、モジュロ演算子 (%) は、最初の式を 2 番目の式で除算した余りを求めます。ただし、この例のような整数オペランドの場合、除算演算子 (/) は整数の除算を実行し、小数部は破棄されます。
数学的分解
計算を分解してみましょう。明確にするために、
実装定義の動作
両方のオペランドが負の場合、剰余の符号は実装定義であることに注意することが重要です。ただし、ISO14882:2011(e) の時点では、その動作は以前の ISO14882:2003(e) のように明示的に規定されていません。
以上がモジュロ演算子は負の数をどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。