HP Forums

Full Version: Programming Challenge
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Write a routine to convert a number in base 2-16 to/from base 1.

Neatness counts.
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}
(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)
There are a number of conversion programs available in the software library that will do the conversions you seek, and then some.
Reference URL's