我需要帮助处理非常大的数字.根据Windows calc,指数
174^55 = 1.6990597648061509725749329578093e+123
Run Code Online (Sandbox Code Playgroud)
我如何使用C(c99标准)存储?
int main(){
long long int x = 174^55; //result is 153
printf("%lld\n", x);
}
Run Code Online (Sandbox Code Playgroud)
如果近似值正常,则可以使用浮点(float或double)数字.而且,正如评论者所说,你需要而pow不是^.
但是,对于加密,近似不起作用.你需要支持非常大的整数运算.GMP提供通用的多精度算术支持.许多加密软件包在其代码中也会有这样的算法,可以通过第三方库或内置; PuTTY有一个用于大整数的bignum库,OpenSSL可能有类似的东西.
基本的C数据类型是不够的.