Subject: | |
From: | |
Reply To: | |
Date: | Mon, 4 Dec 2000 08:12:28 -0700 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
?? I'm getting non-powers of the base:
ASTRO/DARNELL/PUB(1):comeau 127,8
127 = 7+56+64
Written as 177 in base 8
ASTRO/DARNELL/PUB(1):calc 8*8*8
512, $200, %1000
ASTRO/DARNELL/PUB(1):calc 8*8
64, $40, %100
ASTRO/DARNELL/PUB(1):calc 8*7
56, $38, %70
ASTRO/DARNELL/PUB(1):
56 is not a power of 8
-dtd
> -----Original Message-----
> From: Bob Comeau [mailto:[log in to unmask]]
> Sent: Monday, December 04, 2000 8:04 AM
> To: [log in to unmask]
> Subject: Re: Math Help
>
>
> 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
>
|
|
|