例えば、
int result;
result = 125/100;
または
result = 43/100;
結果は常に部門の最低値になりますか? 定義された動作は何ですか?
ベストアンサー1
結果は常に部門の最低値になりますか? 定義された動作は何ですか?
完全にはそうではありません。切り捨てではなく、0 に向かって切り捨てられます。
6.5.5 乗算演算子
6整数を割る場合、/ 演算子の結果は小数部分を除いた代数商になります。88 )商 a/b が表現可能な場合、式 (a/b)*b + a%b は a と等しくなります。
対応する脚注:
- これはしばしば「ゼロへの切り捨て」と呼ばれます。
もちろん、注目すべき点が 2 つあります。
3オペランドに対して通常の算術変換が実行されます。
そして:
5 / 演算子の結果は、最初のオペランドを 2 番目のオペランドで割った商です。% 演算子の結果は余りです。どちらの演算でも、2 番目のオペランドの値が 0 の場合、動作は未定義です。
[注: 強調は筆者による]