整数除算の動作は何ですか? 質問する

整数除算の動作は何ですか? 質問する

例えば、

int result;

result = 125/100;

または

result = 43/100;

結果は常に部門の最低値になりますか? 定義された動作は何ですか?

ベストアンサー1

結果は常に部門の最低値になりますか? 定義された動作は何ですか?

完全にはそうではありません。切り捨てではなく、0 に向かって切り捨てられます。

6.5.5 乗算演算子

6整数を割る場合、/ 演算子の結果は小数部分を除いた代数商になります。88 )商 a/b が表現可能な場合、式 (a/b)*b + a%b は a と等しくなります。

対応する脚注:

  1. これはしばしば「ゼロへの切り捨て」と呼ばれます。

もちろん、注目すべき点が 2 つあります。

3オペランドに対して通常の算術変換が実行されます。

そして:

5 / 演算子の結果は、最初のオペランドを 2 番目のオペランドで割った商です。% 演算子の結果は余りです。どちらの演算でも、2 番目のオペランドの値が 0 の場合、動作は未定義です。

[注: 強調は筆者による]

おすすめ記事