数字系统之间转换的高效算法

sum*_*ght 5 integer

当源整数的大小是任意的时,是否有任何有效的数字系统之间的转换算法?

例如,假设存在一个整数数组{1,4,8},其为十进制格式的148作为输入.它可能以十六进制格式转换为{9,4},或以八进制转换为{2,2,4},或以二进制格式转换为{1,0,0,1,0,1,0,0},或仅{以1234-ary格式或其他东西.

当实际值可以用机器支持的字大小表示时,这很简单.但是当它达到任意大小时,我找不到比O(n ^ 2)更好的有效方法.

Fed*_*oca 3

除以底数,推回模块,冲洗并重复,直到商!= 0。

例如,将 148 转换为基数 16

148 / 16 = 9 r 4
  9 / 16 = 0 r 9
Run Code Online (Sandbox Code Playgroud)

所以,148 的十六进制是 0x94。这不应该花这么长时间。