如何将”二进制字符串“转换为“十进制字符串”

时间:2022-12-30 22:29:27
要现示大整数时(譬如在使用RSA算法),需要将一个2的31次幂的数(unsigned long型数组)转换为十进制数(字符串),现在我可以转换成2进制数(字符串),所以需要将2进制字符串转换为十进制字符串。
我通过模拟短除法的方法实现将十进制数(字符串)转换为二进制数(字符串),但无法倒过来实现将二进制数(字符串)转换为十进制数(字符串),所以我想问:如何将二进制字符串转换为十进制字符串?不需要详细过程,只需请您告诉我算法即可,十分感谢您的帮助!

7 个解决方案

#1


倒过来,短乘即可。

#2


是啊,既然可以模拟短除,那么不停的乘2的幂相加是个更简单的工作。

#3


   您没理解我的想法,我是对十进制字符串(位数是不受限制的字符串)做短除,这不同于对整型数做除法,所以不能通过不断乘2后累加到一个整型数上,因为这会越界的,谢谢。

#4


google "大数乘法"
楼主现在是脑子一时僵住,转不过弯了。

#5


“我通过模拟短除法的方法实现将十进制数(字符串)转换为二进制数(字符串),但无法倒过来实现将二进制数(字符串)转换为十进制数(字
符串),所以我想问:如何将二进制字符串转换为十进制字符串?”
二进制到十进制和十进制到二进制不是差不多吗?
自己定义一个大数类(class BigInteger),然后实现加减乘除取余操作,就什么都有了。要什么有什么,和一般的数一样使用。

#6


我也很想知道?
32次幂也太大了吧!

#7


我要结贴了,但是我仍然没有得到可行的答案,是我没解释清楚吗?如果您有可行的算法可以告诉我吗,谢谢,我的邮箱是007aoj@163.com。

#1


倒过来,短乘即可。

#2


是啊,既然可以模拟短除,那么不停的乘2的幂相加是个更简单的工作。

#3


   您没理解我的想法,我是对十进制字符串(位数是不受限制的字符串)做短除,这不同于对整型数做除法,所以不能通过不断乘2后累加到一个整型数上,因为这会越界的,谢谢。

#4


google "大数乘法"
楼主现在是脑子一时僵住,转不过弯了。

#5


“我通过模拟短除法的方法实现将十进制数(字符串)转换为二进制数(字符串),但无法倒过来实现将二进制数(字符串)转换为十进制数(字
符串),所以我想问:如何将二进制字符串转换为十进制字符串?”
二进制到十进制和十进制到二进制不是差不多吗?
自己定义一个大数类(class BigInteger),然后实现加减乘除取余操作,就什么都有了。要什么有什么,和一般的数一样使用。

#6


我也很想知道?
32次幂也太大了吧!

#7


我要结贴了,但是我仍然没有得到可行的答案,是我没解释清楚吗?如果您有可行的算法可以告诉我吗,谢谢,我的邮箱是007aoj@163.com。