Forum: Mikrocontroller und Digitale Elektronik Microchip XC32: Division -> Rest


von Master S. (snowman)


Lesenswert?

Hallo
beim XC16 gibt es die funktion "__builtin_divmodud()" mit der man bei 
einer division gleich auch noch den rest bekam. diese funktion habe ich 
beim XC32 nicht mehr gefunden. schade, denn ich müsste eine zahl 
effizient in die einzelnen 10er-ziffern teilen.
hat jemand von euch einen vorschlag anstatt zwei divisionen ('/' und 
'%') pro ziffer auszuführen?
vielen dank.

von Klaus (Gast)


Lesenswert?

Ist beides der gcc. Da sieht man mal, wie portabel so ein "__builtin.." 
ist.

MfG Klaus

von Master S. (snowman)


Lesenswert?

ich wollte eigentlich nicht eine meinung zum compiler sondern einen 
lösungsmöglichkeit mit dem compiler.

von Peter C. (peter_c49)


Lesenswert?

Hallo Snowman,

beim den 16bit dsPICs ist das wohl HW basiertes dividieren.
du kannst aber stdlib benutzen, schau mal nach div(), ldiv() u lldiv(). 
die machen das und sollte recht portabel sein.

#include <stdlib.h>

...

    div_t result;
    int a = 10;
    int b = 3;

    result = div(a,b);

    printf("quotient %d remainder %d\n", result.quot,  result.rem );

mfG
Peter

von Joe (Gast)


Lesenswert?


von Master S. (snowman)


Lesenswert?

hallo Peter
das kommt schon sehr(!) an das __builtin_divmodud() respektive spart 
schon einige taktzyklen. vielen dank! :-)

Joe, leider weiss ich nicht, was du mir damit sagen willst.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.