找回密码
 注册
关于网站域名变更的通知
查看: 113|回复: 2
打印 上一主题 下一主题

结构体位域操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-6-8 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
结构体的位域操作,功能是什么???
* F, s+ |2 q/ q( X0 ?/ v8 F) v9 ~2 j+ y) y
就是为了方便进行位操作,跟51一样每次单独操作1位。具体怎么实现的自己搜索,我也没看太明白,给你举个例子。5 K+ k- b/ k% L* [4 R9 ^
union  union8_def{+ T2 }5 w0 G2 a* W0 k
    struct{
5 f6 `0 W" M0 V$ D, {        unsigned    b0:1;7 h, H2 ^4 O1 n
        unsigned    b1:1;: Z$ F2 D0 ]8 U9 j$ d
        unsigned    b2:1;) a7 j# P: J) F- U$ }
        unsigned    b3:1;( j: f3 X0 C2 L
        unsigned    b4:1;3 i  a- I1 p9 I! R
        unsigned    b5:1;$ Q! a# A" D- p% T/ U/ X
        unsigned    b6:1;
8 F; F, `. I/ ?3 d# {/ S$ X: f        unsigned    b7:1;
# z: q8 {) z9 W6 Z8 B    }bits;
1 n0 }3 I0 m: y; g/ V+ {' N3 @    ; u/ z4 p) ^: W, U1 r1 g' U+ o
    u8         word8;
6 Z/ ^  j6 o( ^6 @% d, F( p4 p};
7 @/ y0 d  y" stypedef union  union8_def                union8;
4 l7 b/ h! `+ G0 A; k6 A5 s" h, {) z- v- A  |) M
, c- F5 e; i7 j8 a( j6 B7 ]# y; Z4 w
union8  KKKK;
' e! x2 N+ W" t" y! r) W1 \4 v然后你就可以用KKKK.bits.b0 KKKK.bits.b1来进行位操作了7 b4 A8 [: X8 B; N: y$ e
想看整个数据就用KKKK.word8来查看8个bit组成的整个数字了
( K1 p5 l) k2 c3 g6 OKKKK.bits.b0=1;
# I* R* v/ z9 {8 UKKKK.bits.b1=0;; u6 @: K1 ]( O3 J" |
KKKK.bits.b2=1;. L9 D9 J1 k) s: l& {
KKKK.bits.b3=0;7 r- H; l8 l2 c- }  B
KKKK.bits.b4=1;: }$ m* @+ w/ L! |8 C
KKKK.bits.b5=0;
8 L& i/ U! f! T$ u5 z6 TKKKK.bits.b6=1;( Z  ]4 l7 j- @1 L
KKKK.bits.b7=0;* `1 W2 Q9 {+ b- o- E$ w, \

9 C) \, U) Z8 N5 M& f- `. s) d然后
$ F- }; n9 N: i' LKKKK.word8=0x55。# t2 l* x9 A  d& z* s) ]4 J2 v
同样方法可以构造16位和32位的2 C" o, {# \. h. z
  @6 Z/ o( g3 P' J- t! M& G

该用户从未签到

2#
发表于 2022-6-8 10:05 | 只看该作者
嗯嗯,学习学习。嘻嘻
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-24 17:54 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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