搜索
bottom↓
回复: 2

关于 BYTE WORD code的意思?

[复制链接]

出0入0汤圆

发表于 2013-7-15 14:34:32 | 显示全部楼层 |阅读模式
这是我从芯片GT21H16S2Y的芯片手册里面看到一段代码,功能是将Unicode内码转化为GB2312内码。

里面有几个定义看不懂,望高手指点下。

首先BYTE、WORD这是什么数据类型?WORD code; 这样定义可以吗?code是关键字?
  1. 6.4 Unicode 到 GB2312内码转换程序
  2. 功能:  把 Unicode 内码转换为 GB2312 内码
  3. 参数:  srcCode:输入 Unicode 内码串。
  4.            destCode:转换后得到的 GB2312 内码串。

  5. BYTE * UToGb2312Buff =0x67d70; // UToGb2312Buff为Unicode到GB2312内码转换表在ROM中的起始地址

  6. BYTE UnicodeToGB2312(BYTE *srcCode,BYTE *destCode)
  7. {
  8. BYTE *ptr,result=0;
  9. int h;
  10. WORD code;
  11. code = *srcCode++;
  12. code = (code<<8) + *srcCode;

  13. if(code<0xa0) result=1;

  14. else if(code<=0xf7) h=code-160;
  15. else if(code<0x2c7) result=1;

  16. else if(code<=0x2c9) h=code-160-463;
  17. else if(code<0x2010) result=1;

  18. else if(code<=0x2312) h=code-160-463-7494;
  19. else if(code<0x2460) result=1;

  20. else if(code<=0x2642) h=code-160-463-7494-333;
  21. else if(code<0x3000) result=1;

  22. else if(code<=0x3017) h=code-160-463-7494-333-2493;
  23. else if(code<0x3220) result=1;

  24. else if(code<=0x3229) h=code-160-463-7494-333-2493-520;
  25. else if(code<0x4e00) result=1;

  26. else if(code<=0x9b54) h=code-160-463-7494-333-2493-520-7126;
  27. else if(code<0x9c7c) result=1;

  28. else if(code<=0x9ce2) h=code-160-463-7494-333-2493-520-7126-295;
  29. else if(code<0x9e1f) result=1;

  30. else if(code<=0x9fa0) h=code-160-463-7494-333-2493-520-7126-295-316;
  31. else if(code<0xe76c) result=1;

  32. else if(code<=0xe774) h=code-160-463-7494-333-2493-520-7126-295-316-18379;
  33. else if(code<0xff00) result=1;

  34. else if(code<=0xff5f) h=code-160-463-7494-333-2493-520-7126-295-316-18379-6027;
  35. else if(code<0xffe0) result=1;

  36. else if(code<=0xffe5) h=code-160-463-7494-333-2493-520-7126-295-316-18379-6027-128;
  37. else result=1;
  38.   
  39. if(result==0)
  40. {
  41.   ptr = UToGb2312Buff + (h<<1);                                                    GT21H16S2Y标准点阵汉字字库芯片用户手册
  42.   *destCode++ = *ptr++;
  43.   *destCode = *ptr;
  44. }
  45. else
  46. {
  47.   *destCode++ =0xa1;
  48.   *destCode =0xa1;
  49. }
  50.   
  51. return 0;
  52. }
复制代码

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-7-15 14:35:39 | 显示全部楼层
希望有人来帮忙,我用的单片机是C51

出0入0汤圆

发表于 2013-7-15 15:04:50 | 显示全部楼层
有些人習慣這樣,
typedef unsigned char BYTE
typedef unsigned int WORD
尤其是M$。
個人表示看見就反胃。

自己在整箇工程範圍內搜索下吧。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 12:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表