RosettaCodeData/Task/Negative-base-numbers/EasyLang/negative-base-numbers.easy
2025-06-11 20:16:52 -04:00

28 lines
481 B
Text

func$ encode n b .
if n = 0 : return "0"
while n <> 0
r = n mod b
n = n div b
if r < 0
n += 1
r -= b
.
out$ = strchar (r + 48) & out$
.
return out$
.
func decode n$ b .
if n$ = "0" : return 0
for c$ in strchars n$
c = strcode c$ - 48
tot = tot * b + c
.
return tot
.
proc test n b .
h$ = encode n b
print n & " -> " & h$ & "_" & b & " -> " & decode h$ b
.
test 10 -2
test 146 -3
test 15 -10