Non-decimal radices/Convert: Difference between revisions

no edit summary
(Scala solution added)
No edit summary
Line 1,954:
1a
 
26
</pre>
 
=={{header|Maple}}==
<lang Maple>#converts a number to a given based represented by a string
to_base := proc(num, based)
local i;
local chart := "0123456789abcdefghijklmnopqrstuvwxyz";
local conversion := ListTools:-Reverse((convert(num,base,based)));
local str := StringTools:-StringBuffer();
for i in conversion do
str:-append(chart[i+1]);
end do;
return str;
end proc:
 
#find the location of char in chart
find_digit := proc(char)
if (StringTools:-HasAlpha(char)) then
return (StringTools:-Ord(char) - 87);
else
return (StringTools:-Ord(char) - 48);
end if;
end proc:
 
#converts a string with given base to a number
from_base := proc(str, base)
local char;
local result := 0;
for char in str do
result *= base;
result += find_digit(char);
end do;
return result;
end proc:</lang>
{{Out|Usage}}
<pre>
to_base(32, 11);
to_base(0, 16);
from_base("2a", 11);
from_base("1a",16);
</pre>
{{Out|Output}}
<pre>
"2a"
"0"
32
26
</pre>
Anonymous user