我应该在c ++中使用什么类型的数据类型600851475143?

时间:2010-01-24 16:29:16

标签: c++ variables types

我正在使用c ++,即使我声明了long int,也有像......一样的错误。

    long int  num = 600851475143;

 warning: integer constant is too large for ‘long’ type

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

4 个答案:

答案 0 :(得分:8)

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

long long int num = 600851475143LL;

答案 1 :(得分:1)

很多都取决于您使用的平台和编译器。

如果您使用的是x64平台,则C ++中的 long 数据类型应该可以正常工作。 签署的长范围从-9,223,372,036,854,775,808到+9,223,372,036,854,775,807。另一方面,无符号长度范围为0到+18,446,744,073,709,551,615。

同样取决于编译器和平台,还有一些其他数据类型实际上是相同的(doubleword,longword,long long,quad,quadword,int64)。

C(不是C ++)支持long long数据类型。假设您使用的是Fedora 10 x32,那么gcc 4.3.0支持long long数据类型,但您必须将LL放在大文字之后。看到 http://www.daniweb.com/forums/thread162930-2.html

答案 2 :(得分:1)

您应该将变量类型与用作赋值给变量的值的整数表达式的类型区分开来。如指定tur1ng,如果可能出现歧义,则应该使用整数文字后缀来指定您指定的精确值类型。

非加密十进制值可以有不同的类型:intlong intunsigned long intlong long int,因此最好是明确的。

答案 3 :(得分:-2)

你只需按照以下步骤(如果你使用的是java):

long num = 60085147514L;

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