软件注册站
热情软件屋

 
如何进行ASCII码转换
编号: QA004886    
建立日期: 2004年9月4日 最后修改日期: 2004年9月4日
所属类别: C/C++ - 其他方面
   
    操作系统: win98
    编程工具: vc++6.0
    问题: 数字视频叠加器问题
    采用RS232使主机(pc)与视频叠加器进行通信,通信波特率为9600bps。命令都采用统一的11个字节的编码。
    命令9:同时发送汉字以及字母或者半角数字(工程中使用)
    第二个字节为属性字(见命令1),第三个字节为行数,第四个字节为列数,第五个字节为待发送的字符汉字总个数,然后的字节是待发送的字符的asc码以及汉字的内码,它们都占两个字节,字符占的低字节为asc码,高字节为0;汉字低字节为内码高字节,高字节为内码低字节,最后是校验和。
    例子:
    89 07 04 03 07 cc a9 bf cb 50 00 48 00 48 00 52 00 c4 ea 7d 设置背景颜色
    在第4行第3列开始以白色显示”泰克2004年”
    (该命令不受命令长度为11的限制)。
    现在的问题是:我不发送固定的字符,而是变量,假设是 char sit[4];
    我是要向串口发数据:info[20];
     info[0]=0x89;
     info[1]=0x07;
     info[2]=0x07;
     .............;
    变量sit 也要包含在这个数组info[20]里; sit 又会被随时附值为0205,0206,0304这样的变量,我想问怎样把sit转换然后加入info[20]里???并且是要如把0205转换为4个ASCII码。(sgqlater)
   
    对于这个问题,我觉得从技术上是不难解决的,不过有些细节问题可能他表述的不是很清晰。
    根据我的理解,答复如下:
    1,将0205转换成4个ASCII码是比较简单的,如将1转换为'2',示例如: char a=2;a=a+'0';现在a中的值就是'2'了。如果a的值可以为其他的非数字的ascii码,则应该写一个转换的函数,进行详细的判断,具体的值的映射可以查阅ascii的编码表。
    2,将bit数组的值赋值到info数组,最好还是单独写一个UpdateData函数,进行值的同步根新,然后在每次发送时都保证调用该函数(可以考虑嵌入发送函数本身)。当然VC也有变量引用的方法,但这里不实用。

    

此问题由ximala回答。

附加关键字:编程, 源程序, programming, source code, C/C++, MFC, C++ Builder, Borland C++, Turbo C, C, BCB, 其他方面,

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio