请问十六进制的数如何转化为字符型数据,如果说0x5A 转为Z

yannankai 2003-11-13 03:24:18
?
...全文
212 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zminhao 2003-11-14
  • 打赏
  • 举报
回复
上面的写反了,是转成16进制了,你反过来就行了。
zminhao 2003-11-14
  • 打赏
  • 举报
回复
char hextable[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
#define TOHEX(a, b) {*b++ = hextable[a >> 4];*b++ = hextable[a&0xf];}



char Tempbuf[3];
char* p = &Tempbuf[0];
TOHEX(regreturn[i], p);
Tempbuf[3]='\0';
zhan_yonghua 2003-11-14
  • 打赏
  • 举报
回复
能说明白些吗?01303032303030303758293DED00033033303230303030D0750002FFFFFFFFFFFFFFFF0000303330是什么码?有点象是unicode
0x191 2003-11-13
  • 打赏
  • 举报
回复
你接收到的短信可能是PDU码.
若是,那它可能是以unicode方式编码(如果短信含中文)。
不能用printf("%c", c)之类强行转换
Lixh2000 2003-11-13
  • 打赏
  • 举报
回复
在MSDN索引中输入_itoa(),再查看帮助,有很多类型转换的函数
byzxy 2003-11-13
  • 打赏
  • 举报
回复
补充说明

如果是 “A - F”
char f = 'B';
char s = 'E'
char v = (f-'A'+10)<<4;
v = v | (s-'A'+10);
byzxy 2003-11-13
  • 打赏
  • 举报
回复
我觉得传上来的是(十六进制数的)字符表示。

象这样的字符转换很容易。
两个转换位一个。 如01303032303030303758293DED00033033303230303030D0750002FFFFFFFFFFFFFFFF0000303330

取第一个字符 char f = '0';
char s = '1';
char v = (f&0x0f)<<4 ;
char v = v | (s&0x0f);
v 就是要转换的字符

如果传上来的就是数字(机器数)那就更省事,直接赋值好啦。
yannankai 2003-11-13
  • 打赏
  • 举报
回复
我要把接收到的短信转化成SQL语句,传到数据库当中,
他们传上来的都是16进制的数,
比如000300
01303032303030303758293DED00033033303230303030D0750002FFFFFFFFFFFFFFFF0000303330
3230333030303126303330323036303038383826

我要把相应的数折出来,更拼成SQL语句,然后更新到数据库当中
zhan_yonghua 2003-11-13
  • 打赏
  • 举报
回复
char c = 0x5a
printf("%c", c);

看看结果如何~~~`
zhan_yonghua 2003-11-13
  • 打赏
  • 举报
回复
数值与字符本来就一样,有必要转吗?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧