我正在为练习编写一个简单的大整数库。我想在 RSA 的简单实现中使用它。我已经阅读了所有以前的线程,但我没有找到我的问题的答案。我只是在项目的开始,我已经阅读了表示大整数的所有数字的最佳选择应该是使用无符号长数数组来表示它们,所以它应该是这样的:
class BigInteger
{
public:
BigInteger(const std::string &digits);
private:
std::vector <unsigned long> _digits;
};
问题是我不知道如何实现类的构造函数。我想我应该转换字符串的每个字符并将其保存在数组中,以最小化数组使用的总内存的方式,因为每个字符都是 1 个字节长,而无符号长至少是 4 个字节长。我应该一次推送一组 4 个字符以避免浪费每个无符号长数字内存吗?你能给我一个例子或一些建议吗?
谢谢。
最佳答案
在思考如何推数之前,先思考如何实现 四个基本操作。你想在构造函数中做什么 string 就是将字符串转换为内部表示,随便 也就是说,要做到这一点,您必须能够乘以 10(假设 十进制)并添加。
关于c++ - C++ 中的大整数类。如何将数字压入无符号长整数数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5469868/