C 大数之和

C 大数之和,c,C,所以我想知道如何得到非常大的数之和(10或更多)。 例如: number1 = 10481481258125812; number2 = 10041284812488248; number3 = 10041248812482488; 我想将这些数字相加并存储到一个名为sum的变量中,但我以前从未在C中使用过如此大的数字 谢谢大家! 试试这个: #include <stdio.h> int main () { long long number1 = 1048148125812

所以我想知道如何得到非常大的数之和(10或更多)。 例如:

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
int64和uint64的定义如下:

与gmplib合作
如果您想使用更大的数字,可以使用。一个简单的教程:

使用支持更大数字的
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
的特定编译器吗?它在哪个站台上运行?维基百科的文章没有提到这种类型。