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

时间:2010-08-23 08:43:43

标签: integer

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

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

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

1 个答案:

答案 0 :(得分:3)

除以基础,推回模块,冲洗并重复商数!= 0。

因此,例如在基数16中转换148

148 / 16 = 9 r 4
  9 / 16 = 0 r 9

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