Supponiamo che a
e siano entrambi di tipo int
e sia diverso da zero. Prendere in considerazione il risultato di eseguire a/b
nei seguenti casi:Arrotondamento divisione intera con negativi in C++
a
eb
sono entrambi non negativo.a
eb
sono entrambi negativi.- Esattamente uno di questi è negativo.
Nel caso 1, il risultato viene arrotondato per difetto all'intero più vicino. Ma cosa dice lo standard sui casi 2 e 3? Una vecchia bozza che ho trovato su Internet indica che dipende dall'implementazione (sì, anche il caso 2), ma il comitato si sta orientando verso il fatto di renderlo sempre "tondo verso zero". Qualcuno sa cosa dice lo standard (più recente)? Si prega di rispondere solo in base allo standard, non è ciò che ha senso, o cosa fanno particolari compilatori.
Incredibile opportunità di ricerca data la natura di 1200 pagine dello standard. Ho intenzione di dargli una rapida grep e rinunciare :) –