1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| int reste_division(int dividende, int diviseur)
{
int i;
int deg_dividende; //degré du dividende
int deg_diviseur; //degré du diviseur
int reste; //reste de la division
int div_interm; //diviseur intermédiaire, soit 0, soit le diviseur
// recherche des degres des operandes
deg_dividende = degre_int(dividende);
deg_diviseur = degre_int(diviseur);
// recherche du reste de la division
div_interm = diviseur;
reste = dividende >> (deg_dividende - deg_diviseur);
for(i = (deg_dividende - deg_diviseur+1); i > 0; i--)
{
if (((reste >> (deg_diviseur-1)) & 0x0001) == 0) reste = reste ^ 0;
else (reste = reste ^ diviseur);
reste = reste << 1;
}
return reste;
} |
Partager