Imaginary base numbers: Difference between revisions
m
J: bugfix
m (→{{header|J}}) |
m (J: bugfix) |
||
Line 1,627:
:
if.0=y do.,'0' return.end.
sq=
step=
seq=
're im0'=.+.y
'im imf'=.(sign,1)*(0,|x)#:im0*sign=.*im0
frac=. ,hfd (imf*|x)-.0 if.#frac do.frac=.'.',frac end.
frac,~(}.~0 i.~_1}.'0'=]) }:,hfd|:0 1|."0 1 seq re,im
}}"0 </lang>▼
}}"0
This ibdec can decode numbers from complex bases up to 0j6, but this ibenc can only represent digits in complex bases up to 0j4.
Line 1,641 ⟶ 1,643:
<lang J>
(ibenc i:16),.' ',.ibenc j.i:16
1030000
1030001
1030002
1030003
300
301
302
303
200
201
202
203
100
101
102
103
0 0
1
2
3
10300
10301
10302
10303
10200
10201
10202
10203
10100
10101
10102
10103
10000
(ibdec ibenc i:16),:
0j_16 0j_15 0j_14 0j_13 0j_12 0j_11 0j_10 0j_9 0j_8 0j_7 0j_6 0j_5 0j_4 0j_3 0j_2 0j_1 0 0j_1 0j2 0j1 0j4 0j3 0j6 0j5 0j8 0j7 0j10 0j9 0j12 0j11 0j14 0j13 0j16
0j4 ibenc 42
10e0a
|