CONVERT_BASE Function
Converts a base-10 integer to an arbitrary base representation.
Usage
arr = convert_base(values, newBase [,oldBase])
Input Parameters
values—A vector of positive integers to convert. If optional parameter oldBase is provided, then values should be an m × n string array representing m numbers using n bits corresponding to an oldBase representation. The ordering should be Big-Endian.
newBase—A scalar integer defining the base representation to convert values to. Must be 2 and 36 (i.e., numbers must be representable using the ordered set [0, 1, ..., 9, a, b, ..., z]
oldBase—(Optional) The current base representation of values. If not provided, assumed to be base 10.
Returned Value
arr—A 2D string array defining the newBase representation of values in Big-Endian format (the least significant bit on the right), where arr(i,*) is the newBase representation of values(i).
Keywords
Base10—(Output) A vector of integers is returned containing the base 10 representation of values.
Example 1
This example converts base-10 numbers to base 12.
x = CONVERT_BASE([2, 8, 13, 2000], 12)
INFO, x && PM, x
; PV-WAVE prints the following:
;         X  STRING    = Array(4, 4)
;         0 0 0 2
;         0 0 0 8
;         0 0 1 1
;         1 1 a 8
PM, 1*12^3 + 1*12^2 + 10*12^1 + 8*12^0
; PV-WAVE prints: 2000
Example 2
Convert base 12 numbers to base 2, and also get base 10 representation.
y = CONVERT_BASE(x, 2, 12, Base10=b10)
PM, y
; PV-WAVE prints the following:
;   0 0 0 0 0 0 0 0 0 1 0
;   0 0 0 0 0 0 0 1 0 0 0
;   0 0 0 0 0 0 0 1 1 0 1
;   1 1 1 1 1 0 1 0 0 0 0
PRINT, 2^4 + 2^6 + 2^7 + 2^8 + 2^9 + 2^10
; PV-WAVE prints: 2000 
PRINT, b10
; PV-WAVE prints: 2       8      13   2000
See Also