1. 字符型
1.1 字符型变量
- 字符型变量:存放的是字符,此处的字符指的是计算机字符集中的字符(ASCII 码);
- 字符型变量:字符型变量只占1个字节,一个字节为8位(二进制的8位),而最大的8位二进制数为11111111,换算成十进制为255,因此字符型变量可存储256个字符,而一个字符可解释为0-255之间的一个数或某个ASCII码;
1.2 各种字符型占用字节数
各种字符型占用字节数列表
数据类型 字节数 位数 上限 下限 计算公式 char 1 8 -128 127 -2^7~(2^7 - 1) usigned char 1 8 0 255 0~(2^8 - 1)
1.3 ASCII码表
- ASCII码有128个字符,所以可以用signed char(即char)中的所有正数表示所有ASCII码值,而负数表示非正常状态。
注:(1)48~57号:0~9十个阿拉伯数字;(2)65~90号:26个大写英文字母;(3)97~122号:26个小写英文字母。
1.4 字符型的字符字面值及ASCII码值
通过字符的字面值求对应的ASCII码值
#include <iostream> using namespace std; int main() { char ch = 'A'; cout<<"字符ch的字符字面值"<<ch<<endl; int asc_ch = (int)ch; cout<<"字符ch的ASCII码值"<<asc_ch<<endl; system("pause"); return 0; } =>字符ch的字符字面值A 字符ch的ASCII码值65
通过ASCII码值求对应的字符的字面值
#include <iostream> using namespace std; int main() { cout<<"打印26个大写英文字母:"; for(int i=65; i<91; i++) { cout<<(char)i; } cout<<endl; system("pause"); return 0; } =>打印26个大写英文字母:ABCDEFGHIJKLMNOPQRSTUVWXYZ
1.5 奇偶校验
- 在计算机的存储单元中,一个ASCII码值占一个字节(8个二进制位),其最高位用作奇偶校验位,校验方式如下:
(1)奇校验:规定正确的代码一个字节中1的个数必须为奇数,若非奇数,在最高位添1;
(2)偶校验:规定正确的代码一个字节中1的个数必须为偶数,若非偶数,在最高位添1;
1.6 wchar_t双字节型变量
- char型变量可存储1个字节的字符,它用来保存英文字符与标点符号是可以的,但是存储汉字、韩文、日文却不可以,因为汉字、韩文、日文都是占据2个字节,为了解决这个问题,C++提供了wchar_t类型,也就是双字节类型,又叫宽字节类型。
如:wchar_t wt[] = L”中”;//定义了一个wchar_t类型的数组变量wt,它用来保存中文字符“中”,大写字母L告诉编译器为“中”字分配两个字节的空间。 宽字符的输出的程序示例:
#include <iostream> #include <locale> using namespace std; int main() { setlocale(LC_ALL, "chs");//setlocale函数将本机的语言设为中文 wchar_t wt[] = L"中"; wcout<<wt; return 0; } =>中
注:标准C++的iostream类库包含了可以支持宽字符的类和对象,如wcout对象可以代替cout对象来执行对宽字符的输出。
参考文献 :
[1]《C++全方位学习》范磊——第四章
[2]《C++程序设计教程(第二版)》钱能——第三章
[3] 百度搜索关键字:C++数据类型、字符型、ASCII码表、宽字节字符型