关于字符类型
创始人
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 表。

相关内容

热门资讯

『2025王昕年度演讲·洞见昕... 2025年12月18日19:08-22:08,由知名招商专家、大商之道招商产业集团联合创始人、全网1...
吴泳铭:重估阿里的“关键先生”... 他的每一步思考和判断,都将影响阿里未来的竞争站位。文|《中国企业家》记者 邓双琳编辑|马吉英头图来源...
美女负责人受贿逾540万,中信... 据财新报道,因在公司债“19路劲01”发行过程中私下收取返费,中信建投(601066.SH)原债承部...
李嘉诚港口交易再反转,中方要求... 李嘉诚港口交易再反转,中方明确表态,中国企业必须要拿下控股权!否则,贝莱德就别想买下这43个港口了,...
轻松健康港交所挂牌,打造“AI... 12月23日,中国领先的数字健康服务平台——轻松健康集团(股票代码:2661.HK)正式在香港联合交...