/* int _DivUnsArrByPwrOf10(a,n,p) * * ARGUMENT * unsigned a[]; * int p; power of 10 to divide by * int n; number of digits * * DESCRIPTION * Divides a number of n words (a) by a power of 10, c= a/10^p, * a>=0, p>0, truncating the result, c is correct only if a/10^p<2^79. * * SIDE EFFECTS * The value of a is destroyed. * * RETURNS * None. (always succeeds) * * AUTHOR * Brugnoli Giugno 1992 * * MODIFICATIONS * */ #include #include #include "gm.h" #include "gmsystem.h" extern double pow(double, double); void _DivUnsArrByPwrOf10Trunc(a,n,p) unsigned SHORT a[]; int n,p; { int ppdf,i; while (p>4) { _DivUnsArrByUns(a,10000,n); p-=4; } #ifdef SH_LIB ppdf=1; for (i=1;i<=p;i++) ppdf*=10; #else ppdf=(int)pow(10.,(double)p); #endif _DivUnsArrByUns(a,ppdf,n); }