c/c++语言开发共享如何在c程序或c ++中存储等于10 ^ 18的整数值?

如何在C变量中存储一个大整数值? 如果我宣布与int a; 它不会起作用。 我使用了long long int它不起作用。

 if( a>=0 && a <= (1000000000000000000)) 

什么声明变量a,以便它不会出现任何错误。它应该是整数。

 Compiler error integer constant is too large for long type. 

    让我们看看你写的if语句:

     if( a>=0 && a <= (1000000000000000000)) 

    1000000000000000000对于整数文字而言太大,因此您需要更大的文字类型。 您应该将a声明为int64_t并执行以下比较:

     if( a>=INT64_C(0) && a <= INT64_C(1000000000000000000)) 

    请注意,当#include #include 时,这只适用于C99C++11编译器。

    编辑:在标准的当前草案中你可以找到这句话(2.14.2 / 2):

    整数文字的类型是表6中相应列表中的第一个,其中可以表示其值。

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

    尝试一个unsigned long long ,假设值为正,它可以保持

     18,446,744,073,709,551,615 

    (VS 13)但是,您必须使用ULL语法。

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

    此代码的问题: if( a>=0 && a <= (1000000000000000000)) ,您需要为文字( 1000000000000000000 )提供后缀LL如果您希望它为long long类型或ULLunsigned long long

      以上就是c/c++开发分享如何在c程序或c ++中存储等于10 ^ 18的整数值?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549266.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐