在C数据类型中保存(2 ^ 52)数字[重复]

问题描述 投票:0回答:2

这个问题在这里已有答案:

我正在使用c做一个项目,我在做一些计算时遇到了一个问题..实际上我想在任何数据类型中存储一个大数字(2 ^ 52)

int helper = TwoOf(26);//52 over 2

unsigned long long help = helper * helper;
  • 函数Twoof(x) - >计算x ^ 2

我使用long long来存储2 ^ 52但调试器显示它的值为零。

有人可以帮忙吗?

c data-structures
2个回答
1
投票

如果您不需要一位数的精确度并且对许多重要数字感到满意,请使用double


-1
投票

您可以长期存储...尝试此功能

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位机器无法存储这个

© www.soinside.com 2019 - 2024. All rights reserved.