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

结构体位域操作

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
结构体的位域操作,功能是什么???7 H4 M- R) ~4 d, X

- H( k) V; O* ?7 y: G, I: X就是为了方便进行位操作,跟51一样每次单独操作1位。具体怎么实现的自己搜索,我也没看太明白,给你举个例子。
( a' @1 q1 J  Y: j6 [union  union8_def{- G) r/ g3 n; i3 p9 b/ `
    struct{: r! q- q  V& J$ P
        unsigned    b0:1;
2 M9 A  f' W6 t% @$ O: n7 V        unsigned    b1:1;+ j$ I5 \( P: {1 N5 f7 X- ~' \! S+ ]7 l
        unsigned    b2:1;5 n" y, q2 z; `
        unsigned    b3:1;
% r7 K7 F: g/ V3 p0 {        unsigned    b4:1;
: N6 @0 ~2 y; i+ K5 H        unsigned    b5:1;
4 Y7 ]# `' L$ J: i        unsigned    b6:1;
) n& M. u' `4 q0 N& e& Q3 Z        unsigned    b7:1;) R5 V: ]2 t, T0 y
    }bits;
/ I% p) ~8 E, |. W6 U4 |* }( h   
7 X% K2 U! Y2 v    u8         word8;/ b+ z1 f( d1 f) [& _
};
4 T8 N, R: H: D7 Wtypedef union  union8_def                union8;
5 {8 O5 B: y; Z, T+ ^- N8 ^. e$ r% h; u8 L! t

0 _5 [8 u$ C! `. O5 T& `union8  KKKK;
* `" _+ Y8 O1 S2 w9 U) O5 k然后你就可以用KKKK.bits.b0 KKKK.bits.b1来进行位操作了7 n4 a' M7 g, |: g
想看整个数据就用KKKK.word8来查看8个bit组成的整个数字了
  x+ i) @/ b0 u; JKKKK.bits.b0=1;
! K# j* n: h( G2 dKKKK.bits.b1=0;
$ k3 M  p: r$ _$ [( I5 [+ n- GKKKK.bits.b2=1;
0 P4 F8 f- C$ ~: c4 v5 EKKKK.bits.b3=0;
5 g7 J# o: E9 iKKKK.bits.b4=1;# f1 T1 Y6 H6 T
KKKK.bits.b5=0;8 j& }5 B4 n, l: z& ^
KKKK.bits.b6=1;
# y, {8 e, v2 q% _KKKK.bits.b7=0;; ^+ I+ Z  R- G9 q/ l2 d
+ q, ^; _! q' f7 j. G& k+ `
然后
7 i# s4 Q5 Q) wKKKK.word8=0x55。
7 Z2 H& s4 j+ ], p5 O7 \% ]; C0 q同样方法可以构造16位和32位的. G2 X4 d  }1 }  {

/ J5 a% b; y1 ^2 c4 Q

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-5 00:39 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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