OpenEdv-开源电子网

标题: 怎么把十进制数转成32位的16进制数 [打印本页]

作者: 琦玉老师    时间: 2021-7-22 23:39
标题: 怎么把十进制数转成32位的16进制数
给驱动器下发一个速度,按照驱动器的协议,我需要发送两次,高16位和低16位。有没有程序把200000转成30D40?然后拆成高16位和低16位的??感谢大神。。。

作者: LcwSwust    时间: 2021-7-23 10:17
0x30D40=0x0003 0D40,16进制一位数字代表二进制的4位,

所以高16位是0x0003,低16位是0x0D40。

作者: LcwSwust    时间: 2021-7-23 10:26
发帖最好白天发,晚上十点左右到早上九点左右这段时间需要审核。
发帖后多刷新网页才能及时看到回复。
作者: 琦玉老师    时间: 2021-7-23 13:14
LcwSwust 发表于 2021-7-23 10:17
0x30D40=0x0003 0D40,16进制一位数字代表二进制的4位,

所以高16位是0x0003,低16位是0x0D40。

解决了,找到一种办法,直接取整数的高16和低16位,谢谢
作者: LcwSwust    时间: 2021-7-23 13:19
琦玉老师 发表于 2021-7-23 13:14
解决了,找到一种办法,直接取整数的高16和低16位,谢谢

哦,是我看错了么。
不知你用了什么方法?我的方法是这样:
long x=200000;
int a,b;
a=x>>16;//高16位
b=x;//低16位

作者: 琦玉老师    时间: 2021-7-23 14:28
LcwSwust 发表于 2021-7-23 13:19
哦,是我看错了么。
不知你用了什么方法?我的方法是这样:
long x=200000;

就这种,谢谢




欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/) Powered by Discuz! X3.4