【发布时间】:2011-08-12 03:33:18
【问题描述】:
可能的重复:
Inputting large numbers in c++?
Arbitrary-precision arithmetic Explanation
我需要将两个巨大的整数相乘,比如:
a=1212121212121212121212121212121212121212121212121212;
b=1212121212121212121212121212121212121212121212121212;
我认为 C 和 C++ 中没有数据类型可以保存这么大的整数,所以我想将其保留为字符串格式,例如:-
char *number1="1212121212121212121212121212121212121212121212121212";
char *number2="1212121212121212121212121212121212121212121212121212";
在乘法期间,我借助 atoi() 函数将其转换为字符串,例如:
atoi(number1)*atoi(number2);
像往常一样,这个乘法的输出显然会很大,所以我需要将输出更改为字符串格式。
我知道有一个itoa() 函数可以将整数转换为字符串,但它与所有编译器都不兼容。谁能告诉我在这种情况下我应该怎么做?
我正在使用 Ubuntu-10.04 和 g++ 编译器。
【问题讨论】:
-
如果您的字符串太大, atoi() 将无法解决问题,您的结果将是一个完全不同的数字..
-
@Sayem Ahmed-sir 我正在尝试实现 rsa,所以我必须这样做......