免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 10556 | 回复: 17
打印 上一主题 下一主题

求10进制到2进制的转换算法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-05 16:01 |只看该作者 |倒序浏览
假设有这么一个十进制字符串 “24571154547452222456644”,长度已经超过了机器可表示的范围,怎么才能做到把该十进制的字符串转换为2的进制字符串

论坛徽章:
0
2 [报告]
发表于 2012-03-05 16:03 |只看该作者
请进来的高手门帮帮忙,这个问题都困了我两天了,一直没有找到 一个高效的算法。

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
3 [报告]
发表于 2012-03-05 16:36 |只看该作者
字符串跟机器可表示的范围有什么关系?是说整数吧

论坛徽章:
0
4 [报告]
发表于 2012-03-05 16:43 |只看该作者

  1. echo '24571154547452222456644' | sed 'G;:1;s/^0\n//;t;s/^0*/@/;t2;:2;s/!\n/\n1/;s/@\n/\n0/;t1;s/@0/0@/;t2;s/@1/0!/;t2;s/@2/1@/;t2;s/@3/1!/;t2;s/@4/2@/;t2;s/@5/2!/;t2;s/@6/3@/;t2;s/@7/3!/;t2;s/@8/4@/;t2;s/@9/4!/;t2;s/!0/5@/;t2;s/!1/5!/;t2;s/!2/6@/;t2;s/!3/6!/;t2;s/!4/7@/;t2;s/!5/7!/;t2;s/!6/8@/;t2;s/!7/8!/;t2;s/!8/9@/;t2;s/!9/9!/;t2;'

  2. 101001101000000000101000100110111010101101000000001101101010100001101000100
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-03-05 16:49 |只看该作者
LS  的代码 让人凌乱呀   

论坛徽章:
0
6 [报告]
发表于 2012-03-05 16:59 |只看该作者
回复 5# Moon_Bird


    更健壮的代码

  1. echo '24571154547452222456644

  2. 007
  3. abc
  4. 1024' | sed '/^$/b;/[^0-9]/{s/.*/what the fuck is that/;b;};G;:1;s/^0\n//;t;s/^0*/@/;t2;:2;s/!\n/\n1/;s/@\n/\n0/;t1;s/@0/0@/;t2;s/@1/0!/;t2;s/@2/1@/;t2;s/@3/1!/;t2;s/@4/2@/;t2;s/@5/2!/;t2;s/@6/3@/;t2;s/@7/3!/;t2;s/@8/4@/;t2;s/@9/4!/;t2;s/!0/5@/;t2;s/!1/5!/;t2;s/!2/6@/;t2;s/!3/6!/;t2;s/!4/7@/;t2;s/!5/7!/;t2;s/!6/8@/;t2;s/!7/8!/;t2;s/!8/9@/;t2;s/!9/9!/;t2;'


  5. 101001101000000000101000100110111010101101000000001101101010100001101000100

  6. 111
  7. what the fuck is that
  8. 10000000000
复制代码

论坛徽章:
0
7 [报告]
发表于 2012-03-05 17:07 |只看该作者
不停地模2、除2就可以了。

论坛徽章:
0
8 [报告]
发表于 2012-03-05 17:09 |只看该作者
回复 4# hbmhalley


     敬仰

论坛徽章:
0
9 [报告]
发表于 2012-03-05 19:03 |只看该作者
{:3_182:} 回复 6# hbmhalley


   

论坛徽章:
0
10 [报告]
发表于 2012-03-05 19:05 |只看该作者
如果没有找到好的算法情况下,就只有用这一个了,这个算法效率太低了,时间复杂度为0(n*n)
ithinc 发表于 2012-03-05 17:07
不停地模2、除2就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP