C++11新特性之long long类型

    今天让我们来看一下C++11新特性新增的数据类型吧,我们在编程经常会使用到类型来给变量定义,像int、double、char等等。但是你是否知道这些类型占用的字节数是多少吗?

    今天小编带着你一起来看一下各种类型和C++11新特性新增的类型吧。

    在C++标准中所有的整型数据类型,在C++11 标准中,基于整数大小的考虑,标准中还明确限定了各个数据类型最少占用的位数。下表即为整型类型的详细介绍:

short

short int

(有符号短整型)

至少 16 

位(2 个字节)

signed short
signed short int
unsigned short

unsigned short int

(无符号短整型)

unsigned short int
int

int

(有符号整型)

至少 16 位

(2 个字节)

signed
signed int
unsigned

unsigned int

(无符号整型)

unsigned int
long

long int

(有符号长整型)

至少 32 位

(4 个字节)

long int
signed long
signed long int
unsigned long

unsigned long int

(无符号长整型)

unsigned long int
long long(C++11)

long long int

(有符号超长整型)

至少 64 位

(8 个字节)

long long int(C++11)
signed long long(C++11)
signed long long int(C++11)
unsigned long long(C++11)

unsigned long long int

(无符号超长整型)

unsigned long long int(C++11)

C++11 标准规定,每种整数类型必须同时具备有符号(signed)和无符号(unsigned)两种类型,且每种具体的有符号整形和无符号整形所占用的存储空间(也就是位数)必须相同。注意,C++11 标准中只限定了每种类型最少占用多少存储空间,不同的平台可以占用不同的存储空间。

       上面表格中的long long类型是C++11新增的类型,用于定义超长整型变量。在定义的时候,跟long定义变量一样,需要加上“L”或者“l”后缀,long long型需要加上“LL”或者“ll”标识符。例如:

int serven_1 = 10;        // 不添加任何后缀的时候,默认为4个字节的整型变量
int serven_2 = 10l;       // 加上后缀l后表示为long长整型变量
int serven_3 = 10ul;      // 加上后缀ul后表示为unsigned long无符号长整型变量
int serven_4 = 10ll;      // 加上后缀ll后表示为long long超长整型变量
int serven_5 = 10ull;     // 加上后缀ull后表示为unsigned long long 超长无符号整型变量

        对于任意一种数据类型,读者可能更关心的是此类型的取值范围。对于 long long 类型来说,如果想了解当前平台上 long long 整形的取值范围,可以使用<climits>头文件中与 long long 整形相关的 3 个宏,分别为 LLONG_MIN、LLONG_MAX 和 ULLONG_MIN:

  1. LLONG_MIN:代表当前平台上最小的 long long 类型整数;

  2. LLONG_MAX:代表当前平台上最大的 long long 类型整数;

  3. ULLONG_MIN:代表当前平台上最大的 unsigned long long 类型整数(无符号超长整型的最小值为 0);

#include <QCoreApplication>
#include<iostream>
#include<climits>
using namespace std;
​
int main(int argc, char *argv[])
{
   QCoreApplication a(argc, argv);
​
   cout<<"The max value of long is:"<<LONG_MAX<<endl;
   cout<<"The min value of long is:"<<LONG_MIN<<endl;
   cout<<"The max value of unsigned long is:"<<ULONG_MAX<<endl<<endl;
​
   cout<<"The max value of long long is:"<<LLONG_MAX<<endl;
   cout<<"The min value of long long is:"<<LLONG_MIN<<endl;
   cout<<"The max value of unsigned long long is:"<<ULLONG_MAX<<endl;
   
   return a.exec();
}

运行结果:

LLONG_MAX的16进制为:0x8000000000000000

LLONG_MIN的16进制为: 0x7FFFFFFFFFFFFFFF

ULLONG_MAX的16进制为:0xFFFFFFFFFFFFFFFF

欢迎关注微信公众号 “三贝勒文子”, 每天学习C++

 

  • 7
    点赞
  • 4
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:黑客帝国 设计师:我叫白小胖 返回首页
评论 1

打赏作者

三贝勒文子

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值