C++ 如何在c程序或c+中存储等于10^18的整数值+;?

C++ 如何在c程序或c+中存储等于10^18的整数值+;?,c++,c,C++,C,如何在C变量中存储大的整数值? 如果我用int a声明a它不会工作。 我已经将它用于long-long-int。它不起作用 if( a>=0 && a <= (1000000000000000000)) 试试a,假设该值为正值,则它最多可以保存到 18,446,744,073,709,551,615 (第13节) 但是,您必须使用ULL语法。您可以使用long来存储此整数。long被保证至少保存64位 此代码的问题:if(a>=0&&a让我们看看您编写的if语句:

如何在C变量中存储大的整数值? 如果我用
int a声明a它不会工作。
我已经将它用于
long-long-int
。它不起作用

if( a>=0 && a <= (1000000000000000000))
试试a,假设该值为正值,则它最多可以保存到

18,446,744,073,709,551,615
(第13节)
但是,您必须使用
ULL
语法。

您可以使用
long
来存储此整数。
long
被保证至少保存64位


此代码的问题:
if(a>=0&&a让我们看看您编写的
if
语句:

if( a>=0 && a <= (1000000000000000000))
请注意,当您使用
#include
#include
时,这仅在
C99
C++11
编译器中有效

编辑:在当前的标准草案中,您可以找到以下句子(2.14.2/2):

整型文字的类型是对应列表的第一个 在表6中,可表示其值


这意味着编译器应该自动使用所需的文本类型,以使您的文本适合。顺便说一句,我没有看到这种编译器。

您对此主题进行了哪些研究?请注意,您必须为长整型文本添加“LL”后缀:
10000000000000000ll
@MartinR:这不是真的(2.14.2/2)@ ListNeasraceSINEn轨道:我刚刚读到了你在下面的评论中链接到的评论。这对我来说是新的!它只适用于C++还是C?<代码>结构{int int,EXP;}值{ 10, 18 };//PROTON.< /COD>你需要通知OP,这样做,他需要<代码> UL>代码>后缀(否则,该值将是[签名]。“代码>长长< /代码>如果他的<长> <代码>足够长),否则他将改变<代码> > <代码>的类型,并且不会发生任何事情。你还需要通知他,C++直到C++ 11才定义“代码”>长长< /代码>。,&a)
您需要给出文字(10000000000000000000000)后缀LL如果你想它是长的长的< /代码>,不,那不是真的。@ LeNNESS RESIMSINESTOR:确实新的C++标准规定了整数字是类型<代码>长long < /C> >如果<代码> int > />代码>和<>长< /COD>不足以代表它。但是,你永远不能相信C++编译器。(特别是来自微软的)的标准合规性。最好是明确的。@C.R.我同意这一点。不过,人们不应该做出明显错误的声明。不过,不,文字将具有适合该值所需的类型。
if( a>=0 && a <= (1000000000000000000))
if( a>=INT64_C(0) && a <= INT64_C(1000000000000000000))