forked from starnakin/IronGOLEM
45 lines
577 B
Plaintext
45 lines
577 B
Plaintext
ntoa_get_size(number)
|
|
{
|
|
local size = 0;
|
|
|
|
if (number == 0)
|
|
size++;
|
|
loop
|
|
{
|
|
if (number == 0)
|
|
return (size);
|
|
number = number / 10;
|
|
size++;
|
|
}
|
|
}
|
|
|
|
ntoa_s(number)
|
|
{
|
|
local str, sign, size;
|
|
|
|
if (number >= 0x8000)
|
|
{
|
|
number = 0 - number;
|
|
sign = 1;
|
|
}
|
|
size = ntoa_get_size(number);
|
|
if (sign)
|
|
size++;
|
|
str = galloc(size + 1);
|
|
if (str == 0)
|
|
return (0);
|
|
[str + size] = 0;
|
|
if (sign)
|
|
[str] = '-';
|
|
else if (number == 0)
|
|
[str] = '0';
|
|
loop
|
|
{
|
|
if (number == 0)
|
|
return (str);
|
|
[str + size - 1] = number % 10 + '0';
|
|
number = number / 10;
|
|
size--;
|
|
}
|
|
}
|