[解決済み] 負の値を持つモジュロ演算子【重複】について
2022-03-09 18:42:36
質問
なぜ、そのような操作をするのか。
std::cout << (-7 % 3) << std::endl;
std::cout << (7 % -3) << std::endl;
は、異なる結果をもたらすのでしょうか?
-1
1
解決方法は?
ISO14882:2011(e) 5.6-4より。
<ブロッククオート二項演算子 / は商を、二項演算子 % は商を生成します。 で割った余りを出力します。 2番目。または % の第 2 オペランドが 0 の場合、動作は次のようになります。 は未定義です。積分オペランドに対して、/演算子は、分数部分を捨てた代数商を生成します。 結果の型で表現可能な場合,(a/b)*b + a%b は a と等しくなります.
あとは基本的な数学です。
(-7/3) => -2
-2 * 3 => -6
so a%b => -1
(7/-3) => -2
-2 * -3 => 6
so a%b => 1
注意点
オペランドの両方が非負であれば、余りは非負になります。 でない場合は、余りの符号は実装で定義されます。
ISO14882:2003(e)にあったものは、ISO14882:2011(e)にはもう存在しない。
関連
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] switch文の中で変数を宣言してはいけないのはなぜですか?
-
[解決済み] error: 'this' 引数に xxx を渡すと修飾子が消える
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
-
[解決済み】なぜC++コンパイラはoperator==とoperator!=を定義しないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】getline()が何らかの入力の後に使用されると動作しない 【重複あり
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】c++でstd::vectorを返すための効率的な方法
-
[解決済み】オブジェクト引数のない非静的メンバ関数の呼び出し コンパイラーエラー
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件
-
[解決済み】二乗した数字を合計するとき、負数やゼロを明示的に処理する必要がありますか?