代码之家  ›  专栏  ›  技术社区  ›  Abhilash Muthuraj

C++中这600851475143种数据类型应该使用什么样的数据类型?

  •  0
  • Abhilash Muthuraj  · 技术社区  · 15 年前

    我使用C++,即使我声明long int,也有类似的错误……

        long int  num = 600851475143;
    
     warning: integer constant is too large for ‘long’ type
    

    在这种情况下应该使用哪个数据类型?

    4 回复  |  直到 12 年前
        1
  •  1
  •   bahree    15 年前

    很大程度上取决于您使用的平台和编译器。

    如果您在X64平台上,则 长的 C++中的数据类型应该工作。 一 符号长 范围从9223372036854775808到+9223372036854775807。另一方面,无符号长整型的范围是0到+18446744073709551615。

    另外,根据编译器和平台的不同,还有一些其他数据类型实际上是相同的(双字、长字、长长、四字、四字、Int64)。

    C(非C++)支持长长数据类型。假设您使用的是Fedora10x32,那么GCC4.3.0支持long long数据类型,但是您必须将ll放在大文本之后。参见 http://www.daniweb.com/forums/thread162930-2.html

        2
  •  8
  •   tur1ng    15 年前

    您必须在数字后面加上后缀L:

    long long int num = 600851475143LL;
    
        3
  •  1
  •   mloskot    15 年前

    您应该区分变量类型和用作变量值的整数表达式类型。正如tur1ng指定的那样,如果可能出现歧义,应该使用整型文字后缀来精确地指定值的类型。

    未固定的十进制值可以具有不同的类型: int ,请 long int , unsigned long int , long long int 所以最好是直截了当。

        4
  •  -2
  •   Alex    12 年前

    你只需要做如下(如果你使用Java):

    长数=60085147514L;

    这将它声明为“long”数据类型,允许您存储更长的数字。