HP3000-L Archives

December 2000, Week 1

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Bob Comeau <[log in to unmask]>
Reply To:
Bob Comeau <[log in to unmask]>
Date:
Mon, 4 Dec 2000 11:03:53 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (36 lines)
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

ATOM RSS1 RSS2