|
比拟于C++98尺度,C++11整型的最大扭转就是多了long long。但究竟上,long long整型原本就离C++尺度很近,早在1995年,long long就被提议写入C++98尺度,却被C++尺度委员会回绝了。下面咱们就来领会一下longlong整型的相干内容吧。
尔后来,long long类型却进入了C99尺度,并且也究竟上也被不少编译器支撑。因而展转地,C++尺度委员会又掉头决议将long long纳入C++11尺度。
long long整型有两种:long long和unsigned long long。在C++11中,尺度请求long long整型可以在分歧平台上有分歧的长度,但最少有64位。咱们在写常数字面量时,可使用LL后缀(或是ll)标识一个long long类型的字面量,而ULL(或ull、Ull、uLL)暗示一个unsigned long long类型的字面量。好比:
long long int lli=-9000000000000000000LL;
unsigned long long int ulli=-9000000000000000000ULL;
就界说了一个有符号的long long变量ll瑜珈襪,i和无符号的unsigned long long变量ulli。究竟上,在C++11中,另有不少与long long等价的类型。好比对付有符号的,下面的类型是等价的:long long、signed long long、long long int、signed long long int;而unsigned long long和unsigned long long int也是等价的。
同其他的整型同样,要领会平台上long long巨细的法子就是检察<climits>(或<limits.h>中的宏)。与long long整型相干的一共有3个:LLONG_MIN、LLONG_MAX和ULLONG_MIN,它们别离代表了平台上最小的long long值、最大的long long值,和最大的unsigned long long值。可以看看下面这个例子,以下面的代码清单所示。
#include <climits>
#include <cstdio>
using namespace std;
int main(){
long long ll_min=LLONG_MIN;
long long ll_max=LLONG_MAX;
unsigned long long ull_max=ULLONG_MAX;
printf(min of long long:%lld\n,ll_min);//min of long long:
-9223372036854775808
printf(max of long long:%lld\n,ll_max);//max of long long:
9223372036854775807
printf(max of unsigned long long:%llu\n,ull_max);//max of unsigned
long long:18446744073709551615
}
//编译选项:g++ -std=c++11 2-2-1.cpp
在代码清单2-5中,将以上3个宏打印了出来,对付printf函数機車借款,来讲,输出有符号的long long类型变量可以用符号%lld,而无符号的unsigned long long则可以采纳%llu。18446744073709551615用16进制暗示是0xFFFFFFFFFFFFFFFF(16个F),可知在咱们的实行机上,long long是一个64位的类型。
以上就是longlong整型的常识了,看完了文章,你学会了吗?实在就这么多工具。你用过的任何步伐,无论何等繁杂,都是由上面这些根基功效组合而成的。 |
|