C++基础---字符型

1. 字符型

1.1 字符型变量

  • 字符型变量:存放的是字符,此处的字符指的是计算机字符集中的字符(ASCII 码);
  • 字符型变量:字符型变量只占1个字节,一个字节为8位(二进制的8位),而最大的8位二进制数为11111111,换算成十进制为255,因此字符型变量可存储256个字符,而一个字符可解释为0-255之间的一个数或某个ASCII码;

1.2 各种字符型占用字节数

  • 各种字符型占用字节数列表

    数据类型字节数位数上限下限计算公式
    char18-128127-2^7~(2^7 - 1)
    usigned char1802550~(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码表、宽字节字符型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值