HP Forums
Programming Challenge - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: HP Prime (/forum-5.html)
+--- Thread: Programming Challenge (/thread-8512.html)



Programming Challenge - toml_12953 - 06-15-2017 12:31 PM

Write a routine to convert a number in base 2-16 to/from base 1.

Neatness counts.


RE: Programming Challenge - cyrille de brébisson - 06-19-2017 09:27 AM

Hello,

Base 1? that will be hard!

the code bellow should do it for you...
One liners for both functions...

export baseTo10(number, base) // number expressed as a list of coefitiants, most significant digit first...
begin
return Σlist(makelist(number(I)*base^(size(number)-I), I, 1, size(number)));
end;

// example baseTo10({1, 0, 1, 0, 1}, 2) -> 21

export from10ToBase(number, base)
begin
return makelist(floor((number/base^I) mod base), I, 0, log(number, base));
end;

// example from10ToBase(21, 2) -> {1, 0, 1, 0, 1}


RE: Programming Challenge - DrD - 06-19-2017 10:46 AM

(06-19-2017 09:27 AM)cyrille de brébisson Wrote:  Hello,

Base 1? that will be hard!

Next challenge: provide object TYPE (number and description) for the TYPE coefitiants you've described for elements of the list, I didn't see that one in the User Guide. <g>

Very nice programming Cyrille! I took liberty of saving both programs for future use, but I did change the name so they would appear next to each other (or very nearly so) in my master program catalog:

baseTO10(number,base) and it's cousin base10TO(number,base)


RE: Programming Challenge - Han - 06-20-2017 12:42 AM

There are a number of conversion programs available in the software library that will do the conversions you seek, and then some.