windows-nt/Source/XPSP1/NT/drivers/wdm/dvd/mini/dxr2/xtoa.c
2020-09-26 16:20:57 +08:00

92 lines
2 KiB
C

/******************************************************************************\
* *
* XTOA.C - Digit to string convertion functions. *
* *
* Copyright (c) C-Cube Microsystems 1996 *
* All Rights Reserved. *
* *
* Use of C-Cube Microsystems code is governed by terms and conditions *
* stated in the accompanying licensing statement. *
* *
\******************************************************************************/
static char digits[] = "0123456789ABCDEF";
char *_itoa( unsigned int value, char *string, unsigned int radix )
{
char result[265];
int pos;
int index;
int dig;
pos = 0;
do
{
dig = value % radix;
//if ( dig )
result[pos++] = digits[dig];
value -= dig;
dig = value / radix;
value = dig;
} while ( dig >= (int)radix );
if ( dig )
result[pos++] = digits[dig];
/*
if ( pos == 0 )
result[pos++] = '0';
*/
result[pos] = 0;
index = 0;
do
{
string[index++] = result[--pos];
} while( pos );
string[index] = 0;
return string;
}
char *_ltoa( unsigned long value, char *string, unsigned long radix )
{
char result[265];
int pos;
int index;
long dig;
pos = 0;
do
{
dig = value % radix;
//if ( dig )
result[pos++] = digits[dig];
value -= dig;
dig = value / radix;
value = dig;
} while ( dig >= (int)radix );
if ( dig )
result[pos++] = digits[dig];
/*
if ( pos == 0 )
result[pos++] = '0';
*/
result[pos] = 0;
index = 0;
do
{
string[index++] = result[--pos];
} while( pos );
string[index] = 0;
return string;
}