首页 > 求任意进制转换的高效算法

求任意进制转换的高效算法

我要最高效的算法
任意进制转换
传统的用十进制做中介,
大量的幂运算模运算神马的再也受不了了!!
能不能用二进制做中介?或者别的方法?
求大神


最近写了个二进制的高精度加法
最近没有调试,发出来跟大家讨论一下:
为了位运算写的舒服(pascal的xor肯定比^看起来爽点)我用pascal写了:
c[i]:=(a[i] xor b[i-t])xor j;
j:=a and (not(a[i] xor b[i-t]));
T是小数点的位置(我这个是包括小数的高精度计算)
J记录进位
数组倒序存储,从末尾开始
xor异或 and并且 not取反


楼主的要求是:

  1. 尽量用2进制来作为中介
  2. 算法尽量高效

用2进制作中介,速度其实更慢,或者相当。 高效的算法一般是采用压位,用10000 , 或者 100w 做为中介。


参考Knuth的[The Art of Computer Programming, Vol. 2 (3rd edn.), section 4.3 ~ 4.4。


既然要求結果,就不該要求過程。
如果要求過程,就不該要求結果。

請題主考慮清楚,自己是需要高效率算法,還是以 2 爲中介基數的轉換。

後者有個簡單的辦法,num_base16 = ParseInt(num_base10, 10).toString(16)

【热门文章】
【热门文章】