An expansion the simply elegant procedure easily displays the
representation in the base chosen, up to 36:
parm num=0, base=2, format=concise
setvar power 1
setvar result ""
setvar cur_val !num
setvar base_rep ""
setvar base_digits "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
while cur_val > 0
setvar mod_val cur_val mod !base
if mod_val > 0
if len(result) > 0
setvar result result + "+"
endif
if UPS("!format")="DETAIL" and mod_val > 1
setvar result result + "(!mod_val*!power)"
else
setvar result result + "![mod_val * power]"
endif
endif
if !base < 37
setvar base_rep "![str(base_digits,mod_val+1,1)]"+base_rep
endif
setvar power power * !base
setvar cur_val cur_val / !base
endwhile
echo !num = !result
if !base < 37
echo Written as !base_rep in base !base
endif
Bob Comeau