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

相关文章
|
1月前
|
安全 NoSQL Redis
C++新特性-智能指针
C++新特性-智能指针
|
24天前
|
安全 程序员 C语言
C++(四)类型强转
本文详细介绍了C++中的四种类型强制转换:`static_cast`、`reinterpret_cast`、`const_cast`和`dynamic_cast`。每种转换都有其特定用途和适用场景,如`static_cast`用于相关类型间的显式转换,`reinterpret_cast`用于低层内存布局操作,`const_cast`用于添加或移除`const`限定符,而`dynamic_cast`则用于运行时的类型检查和转换。通过具体示例展示了如何正确使用这四种转换操作符,帮助开发者更好地理解和掌握C++中的类型转换机制。
|
30天前
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
28 0
|
1月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
31 0
|
2月前
|
编译器 C++ 运维
开发与运维函数问题之函数的返回类型如何解决
开发与运维函数问题之函数的返回类型如何解决
32 6
|
2月前
|
C++
C++一分钟之-类型别名与using声明
【7月更文挑战第20天】在C++中,类型别名和`using`声明提升代码清晰度与管理。类型别名简化复杂类型,如`using ComplexType = std::vector&lt;std::shared_ptr&lt;int&gt;&gt;;`,需注意命名清晰与适度使用。`using`声明引入命名空间成员,避免`using namespace std;`全局污染,宜局部与具体引入,如`using math::pi;`。恰当应用增强代码质量,规避常见陷阱。
56 5
|
1月前
|
设计模式 安全 IDE
C++从静态类型到单例模式
C++从静态类型到单例模式
26 0
|
2月前
|
编译器 C++
C++从遗忘到入门问题之C++中的浮点数类型问题如何解决
C++从遗忘到入门问题之C++中的浮点数类型问题如何解决
|
10天前
|
编译器 C++
C++ 类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。
56 30
|
24天前
|
存储 编译器 C++
C ++初阶:类和对象(中)
C ++初阶:类和对象(中)