Entier de la division de l'arrondissement avec les négatifs en C++

Supposons que a et b sont tous deux de type int, et b est différente de zéro. Considérons la suite de l'exécution de a/b dans les cas suivants:

  1. a et b sont tous les deux positifs.
  2. a et b sont tous les deux négatifs.
  3. Exactement l'un d'eux est négatif.

Dans le Cas 1, le résultat est arrondi à l'entier le plus proche. Mais quelle est la norme de dire à propos de Cas 2 et 3? Un vieux projet que j'ai trouvé flottant sur l'Internet indique qu'il est dépendant de l'implémentation (oui, même les cas 2), mais le comité s'est penché vers le rendant toujours " tour vers zéro." Personne ne sait ce que la (dernière) standard dit? Merci de répondre uniquement basé sur la norme, pas ce qui fait sens, ou de ce particulier les compilateurs n'.

  • Incroyable possibilité de recherche compte tenu de la 1200 page de la nature de la norme. Je vais lui donner un coup de grep et d'abandonner 🙂
InformationsquelleAutor | 2008-11-26