文本内容:
第章项目式案例13【例
13.1】从键盘输入一个十六进制大端ucs-2编码,将其转化为utf-8编码,并以十六进制形式输出编程思路1首先根据ucs-2编码的取值范围,确定utf-8编码的字节数2若ucs-2编码介于0x0000至0x007f之间,则直接取低字节作为utf-8编码3若ucs-2编码介于0x0080至0x07ff之间,则utf-8编码的第二个字节存储低6位,第一个字节存储相邻的5位4若ucs-2编码介于0x0800至Oxffff之间,则utf-8编码的第三个字节存储低6位,第二个字节存储相邻的6位,第一个字节存储高4位源程序#includestdio.h intmainvoid{unsigned shortucs;unsigned charutf
[3];int n,i;”请输入一个十六进制大端编码printf ucs-2\n;scanfn%hxn,ucs;/*取低字节并将清零*/d7d6if ucs=0x7f置/*d71*/{n=l;/*右移位*/utf
[0]=charucs;6/*取低字节并将清零大/d7d6d5else ifucs=0x7ff{n=2;置/*d7d61*/utf
[1]=charucs0x3f;utf
[1]=utf
[1]|0x80;ucs=ucs6;/大取低字节并将清零*/utf
[0]=charucsOxlf;d7d6置utf
[0]=utf
[0]|0xc0;/*d71*/else ifucs=0xffff{n=3;utf
[2]=charucs0x3f;utf
[2]=utf
[2]|0x80;/*取低字节*//大右移位*/ucs=ucs»6;6/*取低字节并将清零大/utf
[1]=charucs0x3f;d7d6置utf[l]=utf
[1]|0x80;/*d71*/ucs=ucs6;/*右移位*/6utf
[0]=charucsOxOf;/*取低字节并将清零*/d7d6d5d4utf
[0]=utf
[0]|OxeO;置/*d7d6d51*/}转化之后的编码为printf utf-8\nn;for i=0;in;i++printfn%hx nutf[i];zreturn0;。
个人认证
优秀文档
获得点赞 0