一个32位的数据,只想取其中的8-15位,该如何处理?

2019-12-27 18:56发布

本帖最后由 rjx 于 2017-6-9 15:36 编辑

本人C学的不好,请教一个极其简单的问题:
有一个32位的数据 :u32  abc,  我只需要其中的8-15位,请问有什么简单的办法得到里面的8-15位。望不吝赐教,先谢谢了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
21条回答
TIANYJ
1楼-- · 2019-12-28 19:54
右移8位后取低8位即可。
浮生莫若闲
2楼-- · 2019-12-29 00:46
huangguimina4 发表于 2017-6-9 18:35
最近简单的:
uchar data8_15;
data8_15 = *((unsigned char *)(&abc)+1);

你这个写法还要考虑大小端的问题吧
gyzzg2030
3楼-- · 2019-12-29 05:06
楼主没说要中间的还是两头的
浮生莫若闲
4楼-- · 2019-12-29 08:13
gyzzg2030 发表于 2017-6-9 22:52
楼主没说要中间的还是两头的

楼主的意思应该是想读取D8到D15一个字节的内容,不是说读取任意8到15位数据
zhoufly
5楼-- · 2019-12-29 14:10
 精彩回答 2  元偷偷看……
sbusr
6楼-- · 2019-12-29 19:49
C和C++有个东西叫位域或位段,bit field,这个和联合体一起用。

一周热门 更多>