C 大数之和
所以我想知道如何得到非常大的数之和(10或更多)。 例如:C 大数之和,c,C,所以我想知道如何得到非常大的数之和(10或更多)。 例如: number1 = 10481481258125812; number2 = 10041284812488248; number3 = 10041248812482488; 我想将这些数字相加并存储到一个名为sum的变量中,但我以前从未在C中使用过如此大的数字 谢谢大家! 试试这个: #include <stdio.h> int main () { long long number1 = 1048148125812
number1 = 10481481258125812;
number2 = 10041284812488248;
number3 = 10041248812482488;
我想将这些数字相加并存储到一个名为sum的变量中,但我以前从未在C中使用过如此大的数字
谢谢大家! 试试这个:
#include <stdio.h>
int main ()
{
long long number1 = 10481481258125812;
long long number2 = 10041284812488248;
long long number3 = 10041248812482488;
long long sum = number1 + number2 + number3;
printf("sum : %lld",sum);
}
#包括
int main()
{
long long number1=10481481258125812;
长长数2=10041284812488248;
长长数3=10041248812482488;
长和=1号+2号+3号;
printf(“总和:%lld”,总和);
}
使用64位计数器
如果要使用小于64位的数字,可以使用int64\u t/uint64\u t/long。
这些类型的最大尺寸:
- 国际贸易:2^63− 1=9223372036854775807
- uint64:2^64-1=18446744073709551615
如果您想使用更大的数字,可以使用。一个简单的教程:使用支持更大数字的
long
。在某些编译器中,您也可以使用long
,但您没有提到正在使用的编译器
有关更多信息,请参阅。
无符号long-long
可以处理如此大的数字,最多64位:
#include <stdio.h>
int main() {
unsigned long long number1 = 10481481258125812;
unsigned long long number2 = 10041284812488248;
unsigned long long number3 = 10041248812482488;
unsigned long long sum = number1 + number2 + number3;
printf("sum: %llu\n", sum);
}
#包括
int main(){
无符号长数字1=10481481258125812;
无符号长-长数字2=10041284812488248;
无符号长-长数字3=10041248812482488;
无符号长和=number1+number2+number3;
printf(“总和:%llu\n”,总和);
}
类型long
被指定为至少有63个值位和无符号long-long
64个值位
一些编译器(gcc和clang)支持更大的128位整数类型,如\uuuuu int128
或\uuuuu int128\u t
和\uuuuu uint128
或\uuu uint128\u t
。这些是非标准类型,C库通常不支持它们,因此您需要自己编写字符串之间的转换函数
除此之外,您还需要一个包,例如。您使用什么类型来表示这些?在这种特定情况下,64位整数就足够了。也许您需要一个像。。。或者仅
long
或int64\t
long
不能保证为64位。long
通常与int长度相同。当您对必须表示的数据大小有特定要求时,最好将stdint.h
库与int64_t
等类型一起使用,因为这样可以方便地确保满足要求。谢谢!我使用了long-long int,但在printf中使用了%d而不是%lld,所以难怪它会显示一些随机数。建议使用%llu
表示无符号long-long
谢谢!我使用的是long-long int,但我在printf中使用了%d而不是%lld,所以难怪它会显示一些随机数。@Abhi_-Meruga:您可以通过单击分数下面的灰色复选标记来接受其中一个答案。您能举一个支持long
的特定编译器吗?它在哪个站台上运行?维基百科的文章没有提到这种类型。