質問
例えば、
int result;
result = 125/100;
または
result = 43/100;
結果を常に意の階の部?何は確定的に振る舞えるのでしょうか?
解決
結果を常に意の階の部?何は確定的に振る舞えるのでしょうか?
あり商の整数のオペランドとなります。
6.5.5相乗者
6 の場合整数の分割を果のオペレーターの代数的商せ 小数部が破棄されます。88) の場合は商a/bはrepresentableの表現 (a/b)*b+a%bは等しい。
に対応する脚注:
88)と呼ばれる"前方一致に向けてゼロ"にす
もちろん二の注意点:
3 通常の算術演算変換を行いますのオペランドとなります。
と:
5 結果のオペレーターの 商からの部門の 最初のオペランドによる第二;の の結果%【オペレーターの おります。 両事業の場合、 値の二つ目のオペランドがゼロ の挙動については、定義されていません。
【ご注意:重山】
他のヒント
はDirkgently <に優れた記述を与えます/ A> C99での整数除算のが、あなたはまた、負のオペランドとそのC89で除算整数知っておくべきことは、実装定義の方向性を持っています。
:ANSI Cの原案(3.3.5)から、
%演算子の結果の符号であるように、のいずれかの場合、オペランド/オペレータの結果は以下代数商又は代数商より小さい整数よりも大きな最大の整数であるかどうか、負であるが、実装定義であります。商A / Bが表現可能である場合、式(/ B)* B +%Bは等しくなければならない。
あなたはC89コンパイラで立ち往生しているときに負の数を気をつけます。
それはそれはFORTRANはそれをやった方法だったので、C99がゼロに向かって切り捨てを選んだ楽しい事実です。 comp.std.c上このメッセージを参照してください。
、Cの切り捨て0に向けてではなくフローリングより - 私はいつも床ここになぜPythonの整数の除算については、この読書を学んだ:<のhref = "http://python-history.blogspot.com/2010/08 /why-pythons-integer-division-floors.html」のrel = "noreferrer">なぜPythonの整数除算床の
がはい、結果は常にゼロに向かって切り捨てられます。これは、最小の絶対値の方に丸めます。
-5 / 2 = -2
5 / 2 = 2
符号なしおよび非負符号付きの値については、これは床(-Infinityに向かって丸め)と同じである。
部門の床になり、常に結果のでしょうか?
はありません。結果は変化するが、変化量が負の値に対してのみ発生します。
タグ?定義された行動とは何ですか
は、負の無限大に向かって明確な床ラウンドを行うために、一方に向かって整数の除算の丸めゼロ(トランケート)
正の値の場合、彼らは同じです。
int integerDivisionResultPositive= 125/100;//= 1
double flooringResultPositive= floor(125.0/100.0);//=1.0
負の値の場合、これは異なっている
int integerDivisionResultNegative= -125/100;//=-1
double flooringResultNegative= floor(-125.0/100.0);//=-2.0