This program is Copyright © 2007 by Jean-Marc Baillard and is used here by permission.
This program is supplied without representation or warranty of any kind. Jean-Marc Baillard and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.
-2 programs are listed below:
-The first one only deals with ( positive ) integers and bases b < 101
If 10 < b < 101, each "digit" is represented by 2 decimal
digits from the decimal point:
For instance N = 1A2EF ( base 16 ) must be keyed in
110021415 ( N = 107247 in decimal )
-The second program also deals with ( positive ) fractional arguments
If 10 < b < 101, each "digit" is represented
by 2 decimal digits from the decimal point
If 100 < b < 1001, ----------------------------- 3
------------------------------------ and so on
For instance, in base 234, R =
5,233,001.122, is a number with 3 "digits" in its integer
part ( 5 233 1 ) and 1 "digit" in its fractional part ( 122 )
( in decimal, R = 328303.5214 )
-Roundoff errors are often unavoidable for fractional numbers
Integer Arguments and b < 101
Data Registers: /
Flags: /
Subroutines: /
01 LBL "b-X"
02 10
03 X<Y?
04 X^2
05 STO T
06 CLX
07 STO M
08 SIGN
09 X<> Z
10 LBL 01
11 R^
12 ST/ Y
13 RDN
14 FRC
15 ST- L
16 R^
17 ST* Y
18 X<> T
19 ST* Y
20 X<> Z
21 ST* Z
22 X<>Y
23 ST+ M
24 X<> L
25 X#0?
26 GTO 01
27 X<> M
28 RTN
29 LBL "X-b"
30 SIGN
31 0
32 LASTX
33 R^
34 LBL 02
35 STO M
36 X<>Y
37 MOD
38 ST- M
39 X<> L
40 ST/ M
41 RCL M
42 X<>Y
43 R^
44 ST* L
45 X<> L
46 ST+ T
47 CLX
48 10
49 X<Y?
50 ST* X
51 ST* L
52 X<> L
53 RDN
54 X<>Y
55 X#0?
56 GTO 02
57 STO M
58 X<> Z
59 END
( 103 bytes / SIZE 000 )
1-Base b >>> Base 10 ( LBL "b-X" )
STACK | INPUTS | OUTPUTS |
Y | Nb | b |
X | b | N10 |
2-Base 10 >>> Base b ( LBL "X-b" )
STACK | INPUTS | OUTPUTS |
Y | N10 | b |
X | b | Nb |
Example1: Convert (1234)7 to the decimal scale and then to the nonary scale
1234 ENTER^
7 XEQ "b-X"
>>> 466
9 XEQ "X-b" ( or simply R/S )
>>> 567 whence
(1234)7 = 466 = (567)9
Example2: Convert (16267)12 to the decimal scale and then to the hexadecimal scale and the septenary scale.
106020607 ENTER^
12 XEQ "b-X" >>> 31471
16 R/S yields 7101415
whence (16267)12 = 31471 =
(7AEF)16
-Similarly, 31471 ENTER^ 7
XEQ "X-b" gives 160516
whence (16267)12 =
(160516)7
Fractional Arguments
Data Registers: /
Flags: /
Subroutines: /
01 LBL "B-X"
02 CLA
03 ENTER^
04 DSE X
05 LOG
06 INT
07 1
08 +
09 STO N
10 X<> Z
11 ENTER^
12 LOG
13 RCL N
14 /
15 E2
16 +
17 INT
18 E2
19 -
20 R^
21 X<>Y
22 Y^X
23 STO Z
24 CLX
25 RCL N
26 ST* L
27 X<> L
28 10^X
29 /
30 LBL 01
31 ENTER^
32 INT
33 ST- Y
34 X<> Z
35 ST* Z
36 X<> Z
37 ST+ M
38 R^
39 ST/ T
40 RDN
41 CLX
42 RCL N
43 10^X
44 *
45 X#0?
46 GTO 01
47 X<> M
48 CLA
49 RTN
50 LBL "X-B"
51 CLA
52 ENTER^
53 DSE X
54 LOG
55 INT
56 1
57 +
58 STO N
59 STO O
60 CLX
61 RCL Z
62 LOG
63 RCL Y
64 LOG
65 /
66 INT
67 2
68 +
69 ST* O
70 CLX
71 11
72 STO
P
( not STOP but synthetic STO P )
73 RDN
74 LBL 02
75 RCL N
76 ST- O
77 RCL O
78 X<>Y
79 /
80 RCL Y
81 X<>Y
82 Y^X
83 RDN
84 X<> T
85 MOD
86 ST- Y
87 X<>Y
88 LASTX
89 /
90 RCL O
91 10^X
92 *
93 ST+ M
94 X<> Z
95 DSE P
96 GTO 02
97 RCL M
98 CLA
99 END
( 152 bytes / SIZE 000 )
1-Base B >>> Base 10 ( LBL "B-X" )
STACK | INPUTS | OUTPUTS |
Y | Nb | b |
X | b | N10 |
2-Base 10 >>> Base B ( LBL "X-B" )
STACK | INPUTS | OUTPUTS |
Y | N10 | b |
X | b | Nb |
Example1: Convert (12.34)7 to the decimal scale and then to the nonary scale
12.34 ENTER^
7 XEQ "B-X"
>>> 9.510204082
9 XEQ "X-b"
( or simply R/S ) >>> 10.45284032
whence (12.34)7 = 9.510204082 = (10.45284032)9
Example2: Convert (4,123.092,046)128 to the decimal scale and then to the scale B = 41
4,123.092,046 ENTER^
128 XEQ "B-X"
>>> 635.7215576
41 R/S
>>> 15,20.29,23,38
whence
(4,123.092,046)128 = 635.7215576
= (15,20.29,23,38)41
References:
Abramowitz and Stegun , "Handbook of Mathematical Functions" - Dover
Publications - ISBN 0-486-61272-4
Philippe Descamps & Jean-Jacques Dhenin , "Programmer HP-41" - PSI -
ISBN 2-86595-056-5 ( in French )
Go back to the HP-41 software library
Go back to the general software library
Go
back to the main exhibit hall