找回密码
 欢迎注册
查看: 7318|回复: 7

[转载] 怎么求2的n次方的最高位和次高位(十进制)?

[复制链接]
发表于 2009-12-13 14:15:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
怎么求2的n次方的最高位和次高位(十进制)?
如,2^4=16,最高位是 "1",次高位是"6"。

1,n可以不限定在32或者64之内,如 n=10000000 也是合法的。

(希望身体力行)

问题可以转化为:“在32位系统中,如何纯软件实现将64位甚至1024位或者更高位的整型数据格式化为十进制输出?” (从csdn上转下来的,没看到精彩的算法,贴到这里来交流。)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-12-13 14:43:59 | 显示全部楼层
对于特别大的指数,估计得通过对数运算进行转换吧。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-12-14 07:48:38 | 显示全部楼层
如果只考虑大数进制转换
存在分治法的快速算法
速度是O(nlogn)量级的
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-12-14 23:12:40 | 显示全部楼层
经过我的搞笑算法,2的1亿次幂的前三位数是368,谁来检验一下。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-12-15 09:53:07 | 显示全部楼层
(09:52) gp > \p 50
   realprecision = 57 significant digits (50 digits displayed)
(09:52) gp > log(2)/log(10)*100000000
%1 = 30102999.566398119521373889472449302676818988146211
(09:52) gp > %1-30102999
%2 = 0.56639811952137388947244930267681898814621085413104
(09:52) gp > 10^%2
%3 = 3.6846659369804587632090923909842219150699658122675
(09:52) gp >
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-12-15 12:40:34 | 显示全部楼层
mathe和gp,很强大!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-1-17 16:46:19 | 显示全部楼层
2^1000000,最高位是 "9",次高位是"9"。
上百度百科看进制转换,按照上面的方法转就可以了,不过可能效率有点低
本人写的一个小软件大整数进制转换器就是根据此方法转的
大整数进制转换器在华军上有发布,你可以参考一下
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-1-17 16:59:59 | 显示全部楼层
$2^1000000~~9.900656229295898250697923616301903250733$
$624241787567332866396114531709483309486103054614551236000614*10^301029$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-24 13:53 , Processed in 0.120414 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表