优秀的编程知识分享平台

网站首页 > 技术文章 正文

C++11 整数类型long long(整数类型c语言)

nanyue 2024-08-01 22:54:48 技术文章 10 ℃

C++11中引入了long long数据类型,用于表示非常大的64位整数。这个数据类型在所有平台上最小大小为64位,因此在所有平台上都相同。

在C++中,如果我们没有添加后缀,所有整数都将被视为int。但如果我们想使用long long,我们需要添加后缀。对于带符号的long long,使用LL或ll后缀,对于无符号的long long,使用ULL、ull、Ull或uLL后缀。

例如:

long long x = 65536LL;
unsigned long long y = 18446744073709551615ULL;

在C++中,我们有三个常量来代表long long和unsigned long long数据类型的最大和最小值。它们是LLONG_MAX、LLONG_MIN和ULLONG_MAX。

LLONG_MAX = 9223372036854775807
LLONG_MIN = -9223372036854775808
ULLONG_MAX = 18446744073709551615

我们也可以使用std::numeric_limits类来获取long long和unsigned long long数据类型的最大和最小值。

// 9223372036854775807
cout << std::numeric_limits<long long>::max(); 
// -9223372036854775808
cout << std::numeric_limits<long long>::min();
// 18446744073709551615
cout << std::numeric_limits<unsigned long long>::max();

除了后缀,我们还可以通过位操作来执行对long long数据类型的操作。

long long x1 = 65536 << 16; // error
// x2 is 4294967296 
long long x2 = 65536LL << 16;

在上例中,x1是0,因为对65536(它是int)的左移操作把所有位移出了数字。但在x2中,对65536LL(它是long long)的左移操作执行正确。

需要注意的是,long long数据类型的大小依赖于平台。C++11标准只指定long long数据类型的最小大小,它是64位。因此,我们应该根据需要表示的范围来选择数据类型。例如,如果值小于30,000,我们可以使用int,但如果大于30,000,我们应该使用long。如果大于20亿,我们应使用long long。

最近发表
标签列表