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, 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. |