* integer to ascii conversion
#define digit(c) ( (c > 9) ? (c - 10 + 'a') : c + '0')
char *icvt(value
,ndigit
,sign
) long value
; int *ndigit
,*sign
;
static char buf
[MAXINTLENGTH
+1];
long kludge
, rem
, mask
= 0x7fffffff;
return(&buf
[MAXINTLENGTH
]);
else if (signit
) /* signed ? */
if (value
> 0) *sign
= 0;
c
= (int)(value
% radix
);
{ /* ALL THIS IS TO SIMULATE UNSIGNED MOD & DIV */
kludge
= mask
- (radix
- one
);
rem
= (kludge
% radix
) + (value
% radix
);
value
= (kludge
/ radix
) + (value
/ radix
)
c
= (int)(value
% radix
);
*(buf
+MAXINTLENGTH
) = digit(c
);
for(i
=MAXINTLENGTH
-one
; value
!=0; i
--)
c
= (int)(value
% radix
);
*ndigit
= MAXINTLENGTH
- i
;