1、什么是字符
字符代表一个书写符号或印刷符号,是人类语言的视觉表现形式,是构成文字的基本元素。
字符是信息的基本单位之一,它们是人类记录和传递信息的重要载体工具。从古至今,人类使用各种符号来记录信息,从甲骨文到象形文字,从汉字到拼音文字,字符一直是人类文明的重要,组成部分。
2、什么是编码
计算机只能处理二进制数据(0 和 1),而字符是人类能够理解的符号。为了让计算机能够处理、存储和传输字符,就需要一种规则将字符转换为计算机能够识别的二进制形式储存起来,这种规则就是编码,或理解为给字符进行二进数编号。反之,将计算机底层的二进制码转换成屏幕上有意义的字符(如“hello world”),这个过程就称为解码。
3、什么是字符集
学习视频
在计算机中字符的编解码就涉及到字符集(Character Set)这个概念,他就相当于能够将一个字符与一个整数一一对应的一个映射表,体现了某种编码规则、方法,常见的字符集有 ASCII、Unicode等。
ASCII码
历史中很长一段时间里,计算机仅仅应用在欧美的一些发达国家,因此在他们的程序中只存在他们所使用的拉丁字母(如a、b、c、d等)、阿拉伯数字,及不可见的控制字符(回车键、退格、换行键等),他们在编码解码时也只需要考虑这一种情况,就是如何将这些字符转换成计算机所能理解的二进制数,此时 ASCII 字符集应运而生。
4、C++的字符数据类型
char 是 C++ 中的基本数据类型,用于表示单个字符,字符实际上是以整数形式存储的,char在内存中通常占用一个字节(8 位)。在 ASCII 编码系统中,每个字符都对应一个唯一的整数值,char 类型可以存储这些值来表示相应的字符。字符本质上是一个小整数类型,它可以与整数进行隐式转换。例如,可以将一个字符赋值给一个整数变量,此时存储的是该字符对应的 ASCII 码值。
char ch = 'A'; // 存储字符'A'
int num = ch; // num 将得到 'A' 的ASCII码值 65
char ch=66;
int num='B';
5、C++语言的语句、运算符等采用什么编码来表示
C++语言的语句、运算符等通常采用ASCII编码或Unicode编码来表示。
ASCII编码是一种广泛使用的字符编码标准,用7位或8位二进制数来表示字符,涵盖了英文字母、数字、标点符号等基本字符。在C++的早期发展中,ASCII编码被广泛应用。
随着全球化的发展,Unicode编码逐渐成为主流。它能够表示世界上几乎所有的字符,包括各种语言的文字、符号等。C++从C++11标准开始支持Unicode,使得处理各种语言的字符更加方便和统一。例如,可以使用 char16_t 和 char32_t 类型来处理Unicode字符。
在实际应用中,具体使用哪种编码取决于具体的环境和需求。如果只涉及到基本的英文字符和数字,ASCII编码通常就足够了。但如果需要处理多种语言的字符或复杂的符号,Unicode编码则更为合适。
6、扩展阅读
(1)一文读懂字符编码