资源描述:
《汉字的存储C语言.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、汉字的存储1236002任丹汉字的编码输出输入存储交换码输入码机内码字形码汉字的编码输入码汉字输人码也叫外码,都是由键盘上的字符和数字组成的。目前流行的编码方案有全拼输人法、双拼输入法、自然码输人法和五笔输人法等。输入汉字信息交换码规定汉字与定长的一串二进制数之间的对应关系的方案。自国家标准GB2312-80公布以来,我国一直延用该标准所规定的国标码作为统一的汉字信息交换码。CompanyLogo汉字的编码机内码解决汉字和ASCII码冲突而将两字节最高位置1的解决方案。汉字字型码用于汉字在显示屏或打印机输出。汉字字型
2、码通常有两种表示方式:点阵和矢量表示方法。汉字的存储英文字母及符号用7位数码表示足矣。考虑二进制计数特点,一个符号用8位来表示,其最高位始终为0。B7B6B5B4B3B2B1B00xxxxxxxGB2312规定"对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示",习惯上称第一个字节为"高字节",第二个字节为"低字节"。每个字节的最高位为0,但如果就这样放入电脑,就会与一个字节的ASCII冲突。为此,规定放入机器时每个字节的最高位都置为1,这就是机内码。汉字的存储b7b6b5b4b3b2b1b0b7b6
3、b5b4b3b2b1b00011010001110011国标码1011010011110011(机)内码前导规则:通常简单地说,若某个char的高位为1,就表示那是双字节字符,此时必须将此char紧接的char一并处理,不能分割。用char字符串输入和输出汉字时Length=n×2(汉字个数)+1( )汉字的存储计算输入年份的天干地支#includemain(){inta,b,year;chargz[5];/*用来表示干支的字符变量*//*注意:下面两个语句中{}内的引号和逗号,不能为全角字符*
4、/staticchartg[10][3]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};staticchardz[12][3]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戍","亥"};printf("请输入一个年份:");scanf("%d",&year);a=(year-1804)%10;/*以1804年为参考年份,1804年是甲子年*/b=(year-1804)%12;strcpy(gz,tg[a]);strcat(gz,dz[b]
5、);printf("%d年的干支为:%s",year,gz);return0;}汉字的存储GBK(国家标准GB2312基础上扩容后兼容GB2312的标准)编码:一个汉字占两个字节。UTF-16(UnicodeTransformationFormat-16bit)编码:通常汉字占两个字节,CJKV扩展B区、扩展C区、扩展D区中的汉字占四个字节(一般字符的Unicode范围是U+0000至U+FFFF,而这些扩展部分的范围大于U+20000,因而要用两个UTF-16)。UTF-8(UnicodeTransformat
6、ionFormat-8bit)编码:是变长编码,通常汉字占三个字节,扩展B区以后的汉字占四个字节。一个汉字所占字节要根据具体的字符集和操作系统来定