5

C++ の奇数は、剰余が存在するような方法で分割された場合、常に結果のフロアを返す必要があると確信できますか、またはこれに例外はありますか? つまり:

int x = 5;
x = x/2;
cout<<x;      //2
4

3 に答える 3

5

はい。あなたはC ++でそれを確信することができます

ISO / IEC N3485(ワーキングドラフト)は5.6.4で述べています

The binary / operator yields the quotient, and the binary % operator yields 
the remainder from the division of the first expression by the second.
   If the second  operand of / or % is zero the behavior is undefined. 
For integral operands the / operator yields the algebraic quotient with any 
fractional part discarded;81 if the quotient a/b is representable in the type 
of the result, (a/b)*b + a%b is equal to a; otherwise, the behavior of both 
a/b and a%b is undefined.
于 2013-04-18T16:39:03.503 に答える
2

C/C++ では整数除算は床演算として扱われます。

本当の答えを表すことができないため2、上記の例になります。2.5

ここにいくつかの詳細な回答があります

于 2013-04-18T16:29:34.967 に答える