关于2个字节合并成一个字的问题

2019-07-15 16:07发布

请教各位大神,我看网上不少程序将2个字节合并成一个字是这样写的
unsigned int x;
unsigned char h,l;
x=h<<8+l;
可我觉得应该这样才对
unsigned int x;
unsigned char h,l;
x=(unsigned int)h<<8+(unsigned int)l;大家怎么看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
twilight26
1楼-- · 2019-07-15 20:58
隐式转换,直接一位之后相加也是可以的。
HEMLING
2楼-- · 2019-07-15 23:36
用(unsigned int)强制转换后,数据可能会稳定点。我一般确保数据稳定,是这样写 x=(((unsigned int)h & 0x00ff) << 8) | ((unsigned int)l & 0x00ff);

一周热门 更多>