江湖告急555555555

hlqnlbsn627 2012-05-23 10:08:18
各位高手,小妹现在在做一个大作业遇到了一个小问题:一个数组 char p[3],比如p[0]='0xFF',p[1]='0x65',p[2]='\o';然后就是求0xFF65转化为十进制输出,急急急急急急……
...全文
220 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yh_no_code 2012-05-24
  • 打赏
  • 举报
回复
printf("%d", p[0] * 0x100 + p[1]); /* 移位也行 */

是不是我想的太简单了。哈哈
赵4老师 2012-05-24
  • 打赏
  • 举报
回复
//小端存储
char p[3]={0xFF,0x65,0};
signed short ss;
unsigned short us;
char *a;
a=(char *)&ss;a[0]=p[1];a[1]=p[0];
a=(char *)&us;a[0]=p[1];a[1]=p[0];
printf("%d,%u\n",ss,us);
nice_cxf 2012-05-24
  • 打赏
  • 举报
回复
int conv = ntohs(*(short*)p);

大概就可以了
sxldfang 2012-05-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

就是15*16^3+15*16^2+6*16^1+5*16^0
[/Quote]

你的意思是高位存在低字节,低位存在高字节
daxx1986556 2012-05-24
  • 打赏
  • 举报
回复
你可以参考下sscanf函数 详细的看msdn吧
hlqnlbsn627 2012-05-23
  • 打赏
  • 举报
回复
3楼大哥,我该怎样分呢,能不能给个算法?
super_admi 2012-05-23
  • 打赏
  • 举报
回复
如果是字符和角标的对应关系,则是:char* szTransTable="0123456789ABCDEF";
super_admi 2012-05-23
  • 打赏
  • 举报
回复
好奇怪啊。这样的数据,需要转换吗?
kkk 2012-05-23
  • 打赏
  • 举报
回复
把每个char型分成俩16进制数乘以相应的进位.
hlqnlbsn627 2012-05-23
  • 打赏
  • 举报
回复
就是15*16^3+15*16^2+6*16^1+5*16^0
sxldfang 2012-05-23
  • 打赏
  • 举报
回复
你先说说转换后的值是多少?

69,378

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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