encode - compute the representation of the argument in the radix system defined by the base
val0.encode(val1)
The decode method is similar to the APL ⊤
operator. It can be used to convert an integer to a
sequence of digits in an arbitrary base. It can be used to implement
a "divmod" function. And it can be used to convert, for
example, seconds to hours/minutes/seconds in one step.
val0 and val1 can be an arbitrary multidmensional numeric arrays. Note that the first element of the first dimension of the val0 vector is ignored - it is just there to provide the number of digits which should be computed.
The encode method is conceptually the inverse of the decode method.
The encoded value or values
// Convert number of seconds to days, hours, minutes, seconds
[0,7,24,60].encode(12345)
1 1 13 45
// 121 in binary, decimal, and hexadecimal, with at most 8 digits
// 1111011 binary, 121 decimal, 79 hexadecimal
[2,10,16].reshape(8,3).encode(121)
0 0 0
1 0 0
1 0 0
1 0 0
1 0 0
0 1 0
0 2 7
1 1 9
// Using encode for "divmod"
[0,7].encode(123)
17 4
([17,4]*[7,1]).reduce(`+)
123