急!16进制数字怎么转化成对应的字符?

chenyulin 2005-11-28 03:02:07
请教各位大虾:
我的socket接收到的是16进制数字,怎么能够按照ASCLL码转化成对应的字符,然后显示?
反过来呢?把字符转化成对应的ASCLL码的16进制数字?
谢谢!
...全文
538 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenyulin 2005-11-29
  • 打赏
  • 举报
回复
CString tempstr = "";
CString restring="";
char rechar;
int rehex;

for(int i=0;i<100;i++) m_Buf[i] = 0;
pSocket->Receive(m_Buf,100,0);
for(int j=0;j<100;j++)
{
rechar=(char)m_Buf[j];
rehex=rechar;
restring.Format("%d",rehex);
tempstr += restring;
}
发送方数据为16进制 char sendd[33]={0x24,0x80,0x50,0x13,0x12,0x98,0x19,0x26,0x16,0x18,0x10,0x05,0x22,0x12,0x87,0x45,0x01,0x11,0x34,0x66,0x57,0x4e,0x01,0x40,0x28,0xff,0xff,0xfb,0xff,0xff,0x01,0x5a,0x00};
我接收到的tempstr仅仅是这些数 对应的10进制36-128801918-104253822241653418-1216911752102877816440-1-1-5-1-11900-52-52-52-36000000000000000000000000000000000000000000000000000000000000000
而我想要得是$805013129819261618100522128745……
望各位大虾指点!
alen_ghl 2005-11-29
  • 打赏
  • 举报
回复
你用socket接收到的在内存中都是二进制数据
这些二进制数据 看你想怎么显示了
一般都要对照发送方的格式解析,比如发送方把第一个字节作为字符,你就把第一个字节取出来
用显示字符的方式显示,是16进制就用显示16进制的方式显示
最主要的是你要知道发送方的发送格式,你按照相应的格式保存即可
limigy 2005-11-29
  • 打赏
  • 举报
回复
你的16进制数字是什么样子的?
是字符格式还是数字格式?
chenyulin 2005-11-29
  • 打赏
  • 举报
回复
大虾帮忙……
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
各位大虾谁能给出一段代码?谢谢! 急!
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
to gangnan(港南) :这样做对吗?我的不行,你做过?
gangnan 2005-11-28
  • 打赏
  • 举报
回复
m_str.Format("%c",i);m_str就是对应的字符。
m_str.Format("%x",chr);m_str对应的16进制数。
thisisll 2005-11-28
  • 打赏
  • 举报
回复
(char)变量名
int a = 0x30;
(char)a;就是强制转换
你可以把(char)a这个整体看做是一个char型的数据
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
大虾走了吗?再给小弟指点一下呀,谢谢了
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
怎么强制转换?说的详细点可以吗?比如怎么把5B 31323334 5D转化成[1234]?
thisisll 2005-11-28
  • 打赏
  • 举报
回复
一样的
你直接强制转换好了
你可以看看ASC码对照的表
thisisll 2005-11-28
  • 打赏
  • 举报
回复
在计算机中只有2进制
16进制是你显示的时候才用到的
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
5B 31323334 5D代表[1234],"]"是字符吧 ,怎么强制转换?
fyx010641 2005-11-28
  • 打赏
  • 举报
回复
CString str;
str.Format("%0x",number);
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
但是对方发的是16进制,我接收到的也是16进制数,至于转化成2进制传,TCP协议都封装了吧,对我们是透明的,不需要管把
thisisll 2005-11-28
  • 打赏
  • 举报
回复
30 31 32 33 34 35 36这些是数字不是字符吧
如果是数字那直接(char)30
菜牛 2005-11-28
  • 打赏
  • 举报
回复
直接强制转换就行了。
thisisll 2005-11-28
  • 打赏
  • 举报
回复
你接受到的是16进制的数字(0x00什么的)的话直接强制转换
chenyulin 2005-11-28
  • 打赏
  • 举报
回复
例如:30 31 32 33 34 35 36转化成1 2 3 4 5
thisisll 2005-11-28
  • 打赏
  • 举报
回复
进制数只是你显示出来才有所不同
在计算机中都是二进制

16,472

社区成员

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

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

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