forked from starnakin/IronGOLEM
add: signed number
This commit is contained in:
parent
0a152b9bef
commit
57e78cb70a
12
src/ntoa_s.🗿
12
src/ntoa_s.🗿
@ -15,17 +15,21 @@ ntoa_get_size(number)
|
||||
|
||||
ntoa_s(number)
|
||||
{
|
||||
local str;
|
||||
local size;
|
||||
local str, sign, size;
|
||||
|
||||
size = ntoa_get_size(number);
|
||||
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 (number >= 0x8000)
|
||||
if (sign)
|
||||
[str] = '-';
|
||||
else if (number == 0)
|
||||
[str] = '0';
|
||||
|
6
src/putnum_s.🗿
Normal file
6
src/putnum_s.🗿
Normal file
@ -0,0 +1,6 @@
|
||||
putnum_s(num_s)
|
||||
{
|
||||
local str = ntoa_s(num_s);
|
||||
putstr(str);
|
||||
free(str);
|
||||
}
|
@ -2,11 +2,12 @@ main()
|
||||
{
|
||||
name = "aton_s";
|
||||
|
||||
test_num(aton_s("33"), 33, "");
|
||||
test_num(aton_s(""), 0, "");
|
||||
test_num(aton_s("40"), 40, "");
|
||||
test_num(aton_s("1"), 1, "");
|
||||
test_num(aton_s("-"), 0, "");
|
||||
test_num(aton_s("-40"), 0 - 40, "");
|
||||
test_num(aton_s("-1"), 0 - 1, "");
|
||||
test_num_s(aton_s("33"), 33, "");
|
||||
test_num_s(aton_s(""), 0, "");
|
||||
test_num_s(aton_s("40"), 40, "");
|
||||
test_num_s(aton_s("1"), 1, "");
|
||||
test_num_s(aton_s("-"), 0, "");
|
||||
test_num_s(aton_s("-40"), 0 - 40, "");
|
||||
test_num_s(aton_s("-1"), 0 - 1, "");
|
||||
test_num_s(aton_s("-1"), 0 - 2, "");
|
||||
}
|
||||
|
22
tests/test.🗿
22
tests/test.🗿
@ -44,6 +44,28 @@ test_num(value, reach_value, description)
|
||||
wrt '\n';
|
||||
}
|
||||
|
||||
test_num_s(value, reach_value, description)
|
||||
{
|
||||
putstr(name);
|
||||
if (value != reach_value)
|
||||
{
|
||||
putstr(": ERROR: ");
|
||||
putstr(", ");
|
||||
putstr(description);
|
||||
putstr(" [");
|
||||
putnum_s(reach_value);
|
||||
putstr(" != ");
|
||||
putnum_s(value);
|
||||
putstr("]");
|
||||
}
|
||||
else
|
||||
{
|
||||
putstr(": OK: ");
|
||||
putstr(description);
|
||||
}
|
||||
wrt '\n';
|
||||
}
|
||||
|
||||
test_tab_str(value, reach_value, description)
|
||||
{
|
||||
putstr(name);
|
||||
|
Loading…
Reference in New Issue
Block a user