Python-Stil integer-division & E-Modul in C

In Python und Ruby, signiert integer-division schneidet in Richtung negativ unendlich, und Ganzzahl-Modul hat die gleichen Zeichen der zweite operand:

>>> (-41) / 3
-14
>>> (-41) % 3
1

Aber in C und Java signed integer-division schneidet in Richtung 0, und Ganzzahl-Modul hat die gleichen Vorzeichen wie der erste operand:

printf("%d\n", (-41) / 3); /* prints "-13" */
printf("%d\n", (-41) % 3); /* prints "-2" */

Was ist der einfachste und effizienteste Weg in C, um die gleiche Art von division und modulo wie in Python und Ruby?

  • Das gleiche passiert mit JavaScript: (-41) % 3 === -2
InformationsquelleAutor user102008 | 2009-05-06
Schreibe einen Kommentar