LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 723|回复: 2

c语言问题!在线等,急急急!

[复制链接]
发表于 2004-11-18 17:13:38 | 显示全部楼层 |阅读模式
编程时候要从内存中读取数据,把原来的2位short解析成2个char读了进来!请问怎么把这2个char转成原来的short值!
例如:char a[]="abcd,a"; “,a"原来是一个short型的整数!现在被读做了char型!现在怎么转换",a"为原来的short型!
我想到的是这样:char b[10];

snprintf(b,"%x%x",(short)a[4],(short)a[5]);
short i = strtol(b,NULL,16);
这样就转换回来了,不知道大家有没有更好的办法,C中关于进制之间的转换有没有函数支持啊!
象 ",a" 原来是 2c 61 存在内存中,读进到字符数组中是"44,97"
现在要得到的是当2c61做为是short型的时候的值应该是:11361
怎么写这个转换比较的简单????
发表于 2004-11-18 17:29:56 | 显示全部楼层
在x86机下
printf("%d",*(short *)(a+4));
应该是11361
 楼主| 发表于 2004-11-18 17:36:16 | 显示全部楼层
谢谢了!知道了!看来我的基础知识还是不过关!惭愧了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表