【发布时间】:2010-10-04 13:13:52
【问题描述】:
我有一个约 100 位的字符串,它表示以 10 为底的数字,我想将其转换为表示以 2 为底的数字的字符串,或以二进制表示数字的数字的布尔数组。我可以使用 BigInteger 在 Java 中轻松做到这一点,但我不确定 C++ 中是否有等价物。
函数类似于:
string toBinaryString(string numInDecimal);
感谢您的帮助。
【问题讨论】:
我有一个约 100 位的字符串,它表示以 10 为底的数字,我想将其转换为表示以 2 为底的数字的字符串,或以二进制表示数字的数字的布尔数组。我可以使用 BigInteger 在 Java 中轻松做到这一点,但我不确定 C++ 中是否有等价物。
函数类似于:
string toBinaryString(string numInDecimal);
感谢您的帮助。
【问题讨论】:
使用http://gmplib.org 上提供的 GNU 多精度算术库 (GMP)。 然后mpz set str 可能是您从字符串创建“BigInteger”所需要的。 和mpz get str 再次创建一个字符串。这两个函数都以基数作为参数。
【讨论】:
不幸的是,没有标准的 C++ 类/函数可以做到这一点。 无论如何,在这里至少给你一些帮助是一些或多或少有用的起点来开发你自己的 bigInt C++ 类:
StackOverflow : How to implement big int in C++
【讨论】:
呃...二进制中有很多数字,你会很开心地处理它。
要么这样,要么您可以使用GMP 来帮助您...
【讨论】: