2018-07-17 C言語の整数の除算についてメモ プログラミング C89では、負数の除算の丸め方向は処理系依存。 C99では、負数の除算の丸め方向はゼロ方向への切り捨て。 負方向への切り下げではないことに注意。 符号つき整数のシフト演算(<<, >>)が算術シフトとなるか論理シフトとなるかは処理系依存。 gccでもVC++でも、符号つきなら算術シフト、符号なしなら論理シフト。 「nビットの算術シフト」と「2のn乗での除算」は等価ではない。 前者は負方向への切り下げ、後者は(C99では)ゼロ方向への切り捨てとなる。