关于字符类型
创始人
2025-05-30 05:57:45

编码规范的本质

计算机只能储存数字,不能存字符,如果我们要储存字符就要用到编码规范,当使用某个字符时,通过编码规范,把对应得到数字显示成它对应的字符,当我们要储存某个字符时,也是通过编码规范,储存它所对应的数字,编码规范就像一本字典,里面储存的是数字和字符一一对应的关系。

知识扩展*:计算机里面储存的都是数字,图片、影音、文件等都是以数字的形式储存在里面

字符类型

类型

内存占用(字节)

说明

char

1

ASCII字符

wchar_t

2

宽字节字符(采用utf-16标准或utf-32标准)

char16_t

2

utf_16字符

char32_t

4

utf_32字符

在ASCII中,两个char才能显示中文,为了解决这个问题,引入了宽字节字符,一个wchar_t就能显示中文,在VS2019,采用utf-16标准,在其他编译器下,可能会采用其他标准,比如utf_32,并不稳定。另外它显示英文时也是占用两个字节

char

所有的char类型都是数字,都可以进行加减,只不过优先被表现成了字符

char charA {'A'};
char charA1 {65};
charA++;
std::cout<< charA <

这两个charA输出后都是A

wchar_t

wchar_t wcharA {L'A'};
wchar_t wcharB {L'我'}
std::cout<
  1. 赋值的时候前面都要加上L,用以表示这是个宽字节字符

  1. 第3行输出结果为65,说明cout不支持wchar_t的编码规范,仅支持char类型 的编码规范,要用wcout来输出

  1. cout输出wcharB时,会输出25105,说明中文的数字编码比英文编码大很多

  1. 第6行输出了2和2,说明无论是中文还是英文,wchar_t都是2字节

  1. 最后一行wcout输出了一个空格,说明它输出中文时不支持,需要设置头文件

设置头文件

#include
#include
setlocale(LC_ALL,"chs");
wchar_t wcharA {'我'};
std::wcout<

要想输出中文,要调用头文件locale,并且通过setlocale函数设置中文

char16_t、char32_t

char16_t char16 {u'a'};
char32_t char32 {U'A'};
  1. 前面加u,表示采用utf-16标准,前面加U,采用utf-32标准

  1. wcout和cout都不支持16标准和32标准,所以用这两个输出后结果都为65

ASCII编码表

换行对应了10

std::cout<

这里能换行

0对应了表里面的48

1对应了49

...

9对应了57

可以依照ACSII顺序给0-9进行排序,比如要给身份证号进行排序时,可以采用ASCII 表。

相关内容

热门资讯

盘点一款“七彩丹霞到底有挂吗”... 您好:七彩丹霞这款游戏可以开挂,确实是有挂的,需要软件加微信【4830828】很多玩家在这款游戏中打...
盘点一款“人皇牛牛有没有挂”[... 亲.人皇牛牛这款游戏是可以开挂的,确实是有挂的,通过添加客服【4830828】很多玩家在这款游戏中怀...
今日重大通报“火神大厅透视挂辅... 您好:火神大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【6355786】很多玩家在火神大厅...
实测推荐{乐禧乾安麻将.到底是... 亲.乐禧乾安麻将这款游戏是可以开挂的,确实是有挂的,通过添加客服【9307068】很多玩家在这款游戏...
必备科技“棋缘阁有开挂软件吗”... 您好:棋缘阁这款游戏可以开挂,确实是有挂的,需要软件加微信【3696223】很多玩家在这款游戏中打牌...