加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将非常大的int(写成字符串)转换为c / c中的二进制字符串

发布时间:2020-12-16 05:02:23 所属栏目:百科 来源:网络整理
导读:我有一个基数为10的数字,大约有10k位数.我想将它转换为base 2(1010101001 …).我能想到的只是原始算法: 取最后一个数字mod 2 – 写下来 数除以2; 在字符串上实现小学部门应该不难,但我认为它效率很低.如果我是对的,它将是O(l ^ 2),其中l表示基数为10的数字
我有一个基数为10的数字,大约有10k位数.我想将它转换为base 2(1010101001 …).我能想到的只是原始算法:

取最后一个数字mod 2 – >写下来

数除以2;

在字符串上实现小学部门应该不难,但我认为它效率很低.如果我是对的,它将是O(l ^ 2),其中l表示基数为10的数字长度.可以更快地完成吗?

解决方法

据我所知,你的大数字表示为一个十进制数字序列.如果是这样,您可以使用乘法和加法计算“二进制”表示:

value = sum(i in 0…n-1) 10i * digiti

虽然我不确定你是否可以得到一个O(n log n)算法,但是这个计算可以用分而行的方式分成几部分.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读