is there method of changing decimal number ternary ? mean don't want use modulo , divide method, have big decimal number, 128123832812381835828638486384863486.............1237127317237 , on.
also don't want use bigints.
is there method ?
you don't have use divide/modulo. instead, iterate on input digits, low high. each digit position, first calculate 1000....000 in output representation (it's 10x previous power of 10). multiply result digit, , accumulate output representation.
you need routines perform multiplication , addition in output representation. multiplication routine can written in terms of addition routine.
example:
convert 246 (base-10) base-3.
start initialising output "accumulator" a = "0".
initialise "multiplier" m = "1".
note 10 "101" in output representation.
first digit 6, d = "20".
- multiply:
t = d * m = "20" * "1" = "20". - accumulate:
a = + t = "0" + "20" = "20". - update multiplier:
m = m * "101" = "1" * "101" = "101".
second digit 4, d = "11".
- multiply:
t = d * m = "11" * "101" = "1111". - accumulate:
a = + t = "20" + "1111" = "1201". - update multiplier:
m = m * "101" = "101" * "101" = "10201".
third digit 2, d = "2".
- multiply:
t = d * m = "2" * "10201" = "21102". - accumulate:
a = + t = "1201" + "21102" = "100010".
so answer "100010".
Comments
Post a Comment