>現代的なx86 CPUにおいての64ビット整数演算だと、
>加算は1クロックです。
>シフト演算も1クロックです。
>乗算は4クロックぐらいです。
>じゃあ除算はというと、Intel CPUでいうSkylake世代では、なんと最大 97クロック かかります。
>メモリアクセスの方が速くなりかねないぐらいの遅さです。

なぜ掛け算は速いのに割り算は遅いのですか?

>定数3で割る場合についてもコンパイラは頑張ってくれます。
>①元の値に定数1431655766を掛ける
>➁乗算結果の上32ビットを取り
>③元の値の符号ビットを足す
>④計算結果は下32ビットとする

なぜこれで3で割る計算が出来てしまうのですか?
3で割った余り(0か1か2)を求める速い方法もありますか?