打印

两个asc码转化成一个hex代码,返回为何总是0x00

[复制链接]
2722|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuandaoxy|  楼主 | 2007-8-13 11:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码目的是为了将传输数据过程中重新组合数据

过程是这样的发送时先将一个hex转成两个asc在线路上传输,

接收时将线路上传输的两个asc转成一个hex,将数据恢复,进行分析


#include<reg52.h>

#define  uchar unsigned char    

uchar  char_tab[2]={'1','2'};

unsigned char a2toh(unsigned char *str)
{
    unsigned char tmp;

    tmp = 0;
    
    tmp = char_tab[*str];

    str++;

    tmp = tmp*16 + char_tab[* str];

    return tmp;
}

       main()

{     uchar temp[1];

         temp[1] = a2toh(char_tab); 

          while(1)

          {}

          }

    

相关帖子

沙发
gjg191| | 2007-8-13 11:29 | 只看该作者

dd

指针用的有问题.定义了全局变量干什么还用入口参数.
#define  uchar unsigned char    

uchar  char_tab[2]={'1','2'};

unsigned int a2toh()
{
    unsigned int tmp;
    uchar    i;

    tmp = 0;
    i=0;
    tmp = char_tab;
    i++;


    tmp = tmp*16 + char_tab;

    return tmp;
}

main()

{     
unsigned    int temp;

         temp= a2toh(); 
         while(1)
         {
         }
}这样就ok拉

使用特权

评论回复
板凳
xwj| | 2007-8-13 13:34 | 只看该作者

char_tab[]内容不对,2楼一改就更不对了

使用特权

评论回复
地板
gjg191| | 2007-8-13 13:42 | 只看该作者

dd

哦!我改的不符合1楼的意思!

使用特权

评论回复
5
gjg191| | 2007-8-13 13:58 | 只看该作者

dd

#include<reg51.h>

#define  uchar unsigned char    

uchar  char_tab[2]={'1','2'};

unsigned int a2toh(uchar *str)
{
    unsigned int tmp;
    //uchar    i;
    
    tmp = 0;
    tmp    =*str;
    str++;
    tmp = (tmp*16) + *str;

    return tmp;
}

main()

{     
unsigned    int temp;

         temp= a2toh(char_tab); 
         while(1)
         {
         }
}再来个!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

854

主题

1043

帖子

4

粉丝