基本数据类型的表现形式(字符)

字符和字符串

 在c/c++中,字符编码的格式分两种:ASCII和Unicode。

  ASCII编码在内存中占一个字节大小,由0~255之间的数字组成。Unicode占2字节,表示范围0~65535。

  在vc++6.0中,使用char表示ASCII字符,wchar_t表示Unicode字符。wchar_t中保存ASCII时,不足位补0,如字符'a'的ASCII编码为0x61,Unicode编码为0x0061,汉字的编码方式有些特殊,ASCII和Unicode都有与之匹配的编码格式。

  在程序中使用中文,韩文,日文等时,经常出现乱码,这是因为系统中缺少程序中所需的语种的字符表,而这个字符表是用来解释所需语种的字符编码的。

  ASCII使用GB2312-80,又叫汉字国际码,保存了6763个常用汉字编码,用两个字节表示一个汉字,在GB2312-80中用区和位来定位,第一个字符保存每个区,共94个区,第二个字节保存每个区中的位,共94位。

  Unicode使用UCS-2编码格式,最多可存储65536个字符。但是汉字博大精深,总数远超过UCS-2存储范围,所以UCS-2编码格式只保存了常用字,为了将所有的汉字都包含进来,Unicode也采用了与ASCII类似的方式——用2个Unicode编码解释一个汉字,称之为UCS-4编码格式。

  UCS-2编码表的使用和ASCII码表的使用是一样的,每个数字编号在表中对应一个汉字,从0x4E00到0x9520为汉字编码区,为了使char和wchar_t通用,使用了预编译宏TCHAR来代替他们,TCHAR会根据编译选项定义对应的字符类型。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值