繁体   English   中英

我应该在c ++中为此600851475143使用哪种数据类型?

[英]what kind of datatype should i use for this 600851475143 in c++?

我正在使用c ++,即使我声明long int,也有类似以下错误……

    long int  num = 600851475143;

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

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

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

long long int num = 600851475143LL;

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

如果您使用的是x64平台,则C ++中的数据类型应该适用。 符号的范围从−9,223,372,036,854,775,808到+9,223,372,036,854,775,807。 另一方面,无符号长为0到+18,446,744,073,709,551,615。

同样取决于编译器和平台,还有一些其他的数据类型实际上是相同的(双字,长字,长整型,四元组,四字,int64)。

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

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

不带后缀的十进制值可以具有不同的类型: intlong intunsigned long intlong long int ,因此最好是明确的。

您只需要执行以下操作(如果使用的是Java):

长号= 60085147514L;

这将其声明为“长”数据类型,使您可以存储更长的数字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM