encode - compute the representation of the argument in the radix system defined by the base
base.encode(val)
The encode 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.
base and val can be an arbitrary multidmensional numeric arrays. Note that the first element of the first dimension of the base 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
ArgCheck for an incorrect number of arguments
// 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