搜索
bottom↓
回复: 12

如何将两个8位16进制数转换为一个16位的16进制数

[复制链接]

出0入0汤圆

发表于 2012-9-4 16:21:32 | 显示全部楼层 |阅读模式
如题,举个简单例子0x10, 0x12, 0xd2, 0xfe,转换后结果为0x1012和0xd2fe。因为要转的数很多,求个快捷的方法

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入442汤圆

发表于 2012-9-4 16:36:52 | 显示全部楼层
移位或。或者用汇编来做,具体就是mov al,a[0];mov ah,a[1];mov tar[0],ax;
或者用C来做,tar[0] = a[0] | (a[1] << 8);
效率差不多,不过写的汇编代码并不会进行很好的优化,而C代码可以被很好的结合起来。

出0入442汤圆

发表于 2012-9-4 16:38:07 | 显示全部楼层
还有一个方法,不过要把字节顺序调整成CPU的字节序(LE,BE),然后直接重指定数组为int16* xxx,直接取数。

出0入0汤圆

发表于 2012-9-4 16:40:19 | 显示全部楼层
本帖最后由 lcw_swust 于 2012-9-4 16:41 编辑

unsigned char tab[]={0x10, 0x12, 0xd2, 0xfe};
unsigned int *p=(unsigned int*)tab;
unsigned int n;
n=p[0];
n=p[1];
n=((unsigned int)tab[0]<<8)|tab[1];

出0入0汤圆

发表于 2012-9-4 16:41:49 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2012-9-4 16:46:37 | 显示全部楼层
lcw_swust 发表于 2012-9-4 16:40
unsigned char tab[]={0x10, 0x12, 0xd2, 0xfe};
unsigned int *p=(unsigned int*)tab;
unsigned int n;

关键是有上千个数要转换,能搞成个软件吗?

出0入0汤圆

发表于 2012-9-4 16:50:11 | 显示全部楼层
用共用体吧,很方便的!

出0入0汤圆

发表于 2012-9-4 17:07:25 | 显示全部楼层
kkanleba 发表于 2012-9-4 16:46
关键是有上千个数要转换,能搞成个软件吗?

能               

出0入0汤圆

 楼主| 发表于 2012-9-4 17:11:53 | 显示全部楼层
lcw_swust 发表于 2012-9-4 17:07

朋友你搞一个发给我呗!非常感谢哦

出0入0汤圆

发表于 2012-9-4 17:20:39 | 显示全部楼层
直接打印到串口助手上不就行了

出0入0汤圆

发表于 2012-9-4 17:23:04 | 显示全部楼层
支持共用体。。。这玩意就是处理数据拆分的

出0入0汤圆

发表于 2012-9-4 17:28:36 | 显示全部楼层
union union_tmp16
{
        uint16 tmp16;
        uint8  tmp8[2];
} unTmp16;

unTmp16.tem8[0]=0x12;
unTmp16.tem8[1]=0x34;

unTmp16.tmp16=0x1234;

收工

出0入0汤圆

发表于 2012-9-4 17:47:07 | 显示全部楼层
kkanleba 发表于 2012-9-4 17:11
朋友你搞一个发给我呗!非常感谢哦

我没空。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-26 18:20

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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