HP Forums
HP Prime: Base 10 - Base 12 Conversions - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: HP Prime Software Library (/forum-15.html)
+--- Thread: HP Prime: Base 10 - Base 12 Conversions (/thread-7688.html)



HP Prime: Base 10 - Base 12 Conversions - Eddie W. Shore - 01-31-2017 04:20 AM

Conventions:
X = 10
E = 11
(notation by William A. Dwiggins)

HP Prime Program DEC2DUO

Enter the integer as a number.

Code:
EXPORT DEC2DUO(n)
BEGIN
// integer
// EWS 2017-01-30
// base 10 to base 12
LOCAL s,d,k,q,str1;
s:=IP(LN(n)/LN(12))+1;
d:=n;
str1:=":";

FOR k FROM 1 TO s DO
q:=IP(d/12^(s-k));

IF q<10 THEN
str1:=str1+STRING(q);
END;
IF q==10 THEN
str1:=str1+"X";
END;
IF q==11 THEN
str1:=str1+"E";
END;

d:=d-q*12^(s-k);
END;

RETURN MID(str1,2,s+1);
END;

Example: Convert 12501 from Base 10 to Base 12
DEC2DUO(12501) returns “7299”

HP Prime DUO2DEC

Enter the integer as a string, use X for 10 and E for 11

Code:
EXPORT DUO2DEC(str1)
BEGIN
// as a string, X=10, E=11
// 2017-01-30 EWS
// base 12 to base 10
LOCAL s,n,k,str2,q;

s:=DIM(str1);
n:=0;

FOR k FROM 1 TO s DO
str2:=MID(str1,k,1);
q:=EXPR(str2);
IF str2=="X" THEN
q:=10;
END;
IF str2=="E" THEN
q:=11;
END;
n:=n+q*12^(s-k);
END;

RETURN n;
END;

Example: Convert X2X3 from base 12 go base 10
DUO2DEC(“X2X3”) returns 17691