C++新特性详细介绍 -----新基础类型

简介: C++新特性详细介绍 -----新基础类型

1.整数类型long long(主要是解决整型溢出的问题)小编称之为并不陌生的新类型

long long介绍 在1995年的时候 C++语言专家提出将LL(long long 类型写入C++新标准库里面 但是 被否决 但是C语言新特性引入了LL这个特性 随即在C++11里面也引入了LL类型)

格式:

long long x=123LL;

unsiged long long =1234ULL;   注意后缀大写

这里前面的long long是表明这个数的声明格式 必须要加上后缀 否则编译器不会自动将32位的整型转为64位的整型 换成了64位整型 就能进一步解决整型溢出的问题

C++11 stl模板库新标准 std::numeric_limits新的模板类

std::numeric_limits模板类代码实例

#include <iostream>
#include <limits>//头文件包括了模板特性 numeric_limits<int>::min() 等等
int main() {
    std::cout << "最小整数:" << std::numeric_limits<int>::min() << std::endl;
    std::cout << "最大整数:" << std::numeric_limits<int>::max() << std::endl;
    std::cout << "整数精度(位数):" << std::numeric_limits<int>::digits << std::endl;
    
    std::cout << "最小浮点数:" << std::numeric_limits<float>::min() << std::endl;
    std::cout << "最大浮点数:" << std::numeric_limits<float>::max() << std::endl;
    std::cout << "浮点数精度(位数):" 
              << std::numeric_limits<float>::digits10 
              << " (有效十进制数字个数)" 
              << std::endl;
    return 0;
}
//最小整数:-2147483648
//最大整数:2147483647
//整数精度(位数):31
//最小浮点数:1.17549e-38
//最大浮点数:3.40282e+38
//浮点数精度(位数):6 (有效十进制数字个数)

2.新字符类型char16_t (char_16t表示的是UTF-16编码) ( char32_t 表示的是UTF-32编码)

这两种类型表示的是两种编码方式

格式

char16_t utf16c=u"好";(小写的u)

char32_t utf32c=U"好";(大写的U)

---------字符串数组定义格式--------------------

char16_t utf16[]=u"你好 美丽的世界";

char32_t utf32[]=U"你好 大家";

3.char8_t (UTF8编码)

char8_t myChar = u8'你';//从C++20开始这么定义

char c='1';//c++11到c++17普通的定义方法就是表示UTF8编码

 

下面对编码方法做一个简要的介绍

Unicode是一种字符编码标准,用于在计算机中表示和处理文本。它定义了每个字符(包括字母、数字、符号等)的唯一标识符,即代码点。Unicode的目标是覆盖地球上几乎所有的书写系统,并为它们提供一个统一的编码方案。

在Unicode中,每个字符都有一个独特的代码点,用十六进制表示。例如,拉丁字母大写字母A的代码点为U+0041,希腊字母Ω的代码点为U+03A9。通过使用这些代码点,可以在计算机上存储、传输和显示各种语言和符号。

Unicode编码支持许多不同的变体,如UTF-8、UTF-16和UTF-32等。其中最常见和广泛使用的是UTF-8编码,在这种编码下,每个字符可以占用1到4个字节不等的存储空间。这里要注意 并不一定一个字符占一个字节的大小 与编码方式有关

Unicode标准旨在解决过去存在的字符集碎片化问题,并促进全球范围内文本数据的交流与处理。

TF-8(Unicode Transformation Format-8)是一种用于编码Unicode字符的变长字符编码方案。它是一种在互联网上广泛使用的编码方式,可以将Unicode字符以可变长度的字节序列表示。

UTF-8

Unicode定义了每个字符的唯一代码点,而UTF-8则将这些代码点转换为字节序列进行存储和传输  是一种编码方法并不是本质。UTF-8使用1到4个字节来表示不同范围内的字符。具体地说:

  • 对于基本拉丁字母、数字和标点符号等ASCII字符,UTF-8使用单个字节表示,与ASCII编码兼容。
  • 对于常见的非ASCII字符,如汉字、日语假名、希腊字母等,UTF-8使用多个字节表示。
  • 使用2个字节表示范围在U+0080到U+07FF之间的字符。
  • 使用3个字节表示范围在U+0800到U+FFFF之间的字符。
  • 使用4个字节表示范围在U+10000到U+10FFFF之间的字符。

通过这种变长编码方式,UTF-8能够高效地处理多语言文本,并且与传统ASCII兼容。这使得它成为互联网上最常用的文本编码方式之一。

好了本篇新特性就介绍到这里了  看了这么久的文章大家也累了 去休息一下

小编在此想推荐一个课程 :https://xxetb.xetslk.com/s/2PjJ3T

相关文章
|
2天前
|
存储 编译器 程序员
C++类型参数化
【10月更文挑战第1天】在 C++ 中,模板是实现类型参数化的主要工具,用于编写能处理多种数据类型的代码。模板分为函数模板和类模板。函数模板以 `template` 关键字定义,允许使用任意类型参数 `T`,并在调用时自动推导具体类型。类模板则定义泛型类,如动态数组,可在实例化时指定具体类型。模板还支持特化,为特定类型提供定制实现。模板在编译时实例化,需放置在头文件中以确保编译器可见。
22 11
|
4天前
|
存储 算法 程序员
C++ 11新特性之function
C++ 11新特性之function
17 9
|
4天前
|
编译器 C++ 计算机视觉
C++ 11新特性之完美转发
C++ 11新特性之完美转发
14 4
|
4天前
|
Java C# C++
C++ 11新特性之语法甜点1
C++ 11新特性之语法甜点1
13 4
|
4天前
|
存储 安全 C++
C++ 11新特性之unique_ptr
C++ 11新特性之unique_ptr
12 4
|
4天前
|
安全 程序员 编译器
C++ 11新特性之auto和decltype
C++ 11新特性之auto和decltype
11 3
|
4天前
|
设计模式 缓存 安全
C++ 11新特性之week_ptr
C++ 11新特性之week_ptr
11 2
|
4天前
|
编译器 C++ 容器
C++ 11新特性之语法甜点2
C++ 11新特性之语法甜点2
12 1
|
4天前
|
编译器 C++
C++ 11新特性之右值引用
C++ 11新特性之右值引用
|
4天前
|
存储 编译器 调度
C++ 11新特性之bind
C++ 11新特性之bind