ASCII and Unicode

ACSII:American Standard Code for Information Interchange,美国信息交换标准码。
每个代码7位;
一共128个代码(26个小写字母,26个大写字母,10个数字,32个符号,33个控制代码和一个空格);

Unicode:宽字符集。
Unicode中的每个字符都是16位宽。
前128个Unicode字符(16位代码从0x0000 到 0x007F)是ACSII,而接下来的128个Unicode字符(代码从0x0080 到 0x00FF)是ISO 8859-1对ASCII的扩展。
Unicode字符串占用的内存是ASCII字符串的两倍。

ANSI C:美国国家标准编程语言——C。
DBCS:double-byte character set,双字节字符集。
ISO:International Standards Organization,国际标准化组织。

Intel微处理器首先从最低位字节开始存储多字节数值,所以:
typedef unsigned short wchar_t;
wchar_t c = 'A'; // 宽字符0x0041,16位宽。在内存中是以0x41,0x00的顺序保存的。

定义指向宽字符串的指针:
wchar_t *p = L"Hello!"; // 大写字母L(代表long),告诉编译器该字符串按宽字符保存——即每个字符占用2个字节。
指针变量p要占用4个字节,而字符串变量需要14个字节——每个字符需要2个字节,末尾的0(空结束符)还需要两个字节。

posted on 2011-12-13 21:18 梦五 阅读(289) 评论(0)  编辑 收藏 引用 所属分类: C/C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜