C++11~20新特性:新增基础类型

文章来源学习地址:https://download.csdn.net/download/monkeylee2011/62474922

《内容导向》

1. long long 

2. char16_t  & char32_t

3. char8_t


1. long long 

        c++11新增:long long 64位有符号整数类型,对应的,unsigned long long 为无符号64位整数类型。

        c++ 标准为 long long 和unsigned long long 定义了两种字面量后缀,分别为 LL, ULL

        字面量后缀在某些场景下需用到才能使代码逻辑准确,看代码:

long long t_lData1 = 65536 << 16;//左移16位
std::cout<<"t_lData1="<<t_lData1<<std::endl;//t_lData1值为0,因为默认65536被当作32位整型数据操作,

long long t_lData2 = 65536LL <<16;
std::cout<<"t_lData2="<<t_lData2<<std::endl;

2. char16_t  & char32_t

        c++11 新增:char16_t 和char32_t 两种字符类型,char16_t占2字节,char32_t 占4字节,分别用来对应Unicode字符集的UTF-16 和UTF-32.

        当前,Unicode字符集有UTF-8 ,UTF-16和UTF32这三种编码方法,三者区别是使用不同的内存空间进行编码。具体编码规则不在这里赘述。

        除此之外,c++11为三种编码提供了新前缀用于声明3种编码字符和字符串字面量,分别是:UTF-8使用前缀u8,UTF-16使用前缀u,UTF-32使用前缀U。

char8_t utf8[] = u8"你好";
char16_t utf16 = u'好';
char32_t utf32[] = U"你好";

        除此之外,c++标准库的字符串也加入了对新字符类型的支持:

using u16string = basic_string;
using u32string = basic_string;

3. char8_t

        c++20 引入:char8_t字符类型,可以代替char作为UTF-8的字符类型。char8_t具有和unsigned char相同的符号属性、存储大小、对齐方式以及整数转换等级。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值