/* :: dec2bin.g :: :: Mico Loretan, February 2005 :: :: Convert a base-10 integer into a base-2 integer. :: :: Auxilliary proc: _log2: logarithm base 2 :: Main proc: dec2bin() */ proc _log2(x); retp( ln(x)/ln(2) ); endp; proc dec2bin(d); /* :: input: d base-10 integer, >= 0 :: output: b base-2 integer */ local b,c; /* check for valid input -- a non-negative integer */ if ( d<0 or (round(d) ne d) ); errorlog "Invalid input in proc dec2bin()!"; retp(miss(0,0)); endif; b=0; /* initialize the output variable */ if (d>0); /* process only if d>0 */ do until d==0; c=int(_log2(d)); /* take integer part of result */ b=b+10^c; d=d-2^c; endo; endif; retp( b ); endp;