title: Modulus operator changes
body: <blockquote>
    <p>$5.6/4 in C++03 states- "If both
    operands are nonnegative then the
    remainder is nonnegative;if not, the
    sign of the remainder is
    implementation-defined<sup>74)</sup>.</p>
  </blockquote>
  
  <p>where Note 74 is </p>
  
  <blockquote>
    <p>According to work underway toward the
    revision of ISO C, the preferred
    algorithm for  integer division
    follows the rules defined inthe ISO
    Fortran standard, ISO/IEC 1539:1991,
    in which the quotient is always
    rounded toward zero.</p>
  </blockquote>
  
  <p>C++0x states -</p>
  
  <blockquote>
    <p>$5.6/4- "For integral operands the / operator yields the algebraic quotient with any fractional part discarded;<sup>79</sup> if the quotient a/b is representable in the type of the result, <code>(a/b)*b + a%b</code> is equal to a.</p>
  </blockquote>
  
  <p>Note 79 says</p>
  
  <blockquote>
    <p>This is often called truncation towards zero.</p>
  </blockquote>
  
  <p>So I have two questions:</p>
  
  <ul>
  <li><p>Can someone explain this concept of 'truncation towards zero'?</p></li>
  <li><p>Is modulus with negative operands a defined behavior in C++0x?</p></li>
  </ul>