这个问题在这里已有答案:
我正在使用c做一个项目,我在做一些计算时遇到了一个问题..实际上我想在任何数据类型中存储一个大数字(2 ^ 52)
int helper = TwoOf(26);//52 over 2
unsigned long long help = helper * helper;
- 函数Twoof(x) - >计算x ^ 2
我使用long long来存储2 ^ 52但调试器显示它的值为零。
有人可以帮忙吗?
如果您不需要一位数的精确度并且对许多重要数字感到满意,请使用double
您可以长期存储...尝试此功能
long long tp52=1,i;
for(i=0;i<52;i++)
tp52*=2;
printf("%lld",tp52);
并且Twoof(x) - >计算x ^ 2然后x ^ 2 * x ^ 2是x ^ 4
尝试在线编译器,因为32位机器无法存储这个