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

结构体位域操作

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
结构体的位域操作,功能是什么???
6 \0 I$ P5 H4 y; i( l' S9 S
# x* T$ s* l6 b6 @+ }就是为了方便进行位操作,跟51一样每次单独操作1位。具体怎么实现的自己搜索,我也没看太明白,给你举个例子。9 y; o& \* n9 d' R# O
union  union8_def{+ D3 k0 J0 P4 g( H1 e0 F
    struct{
' R6 l* d4 `: [! u' V0 _. ]7 H        unsigned    b0:1;6 @" b  V5 n- d- d6 w0 ]8 g
        unsigned    b1:1;+ d5 @+ D: q4 Q! S5 R
        unsigned    b2:1;
* U! S6 `7 q) |& v* ~        unsigned    b3:1;3 h: `* p( r& q" P4 f/ M
        unsigned    b4:1;
- ?8 |6 i4 G6 r  `& [5 i8 b        unsigned    b5:1;! N( E" o, n, ~4 G+ B
        unsigned    b6:1;
3 ~  b5 I& e9 F% ~4 i! w8 P- C        unsigned    b7:1;
( q- R; ^# C6 A. \9 F2 h# Z1 w    }bits;! m1 m; g) H. O6 z0 r: u
    0 R1 h8 T" D) x( q# j' J
    u8         word8;& [# V* n  J9 {1 d  b2 ?4 a
};
  a' x% X* g# L8 o% N! Itypedef union  union8_def                union8;: I0 U+ p& N/ i! q/ \1 ^% C& z& r' m
0 T$ z; d! H8 i/ |4 r

3 C% m; t4 `+ `" x+ T! J$ Dunion8  KKKK;  _  S2 v) F# l. q% d0 t; G
然后你就可以用KKKK.bits.b0 KKKK.bits.b1来进行位操作了; D. }2 m. Q( g# M3 ^/ X) G
想看整个数据就用KKKK.word8来查看8个bit组成的整个数字了" n; T% h  Y! ]* e$ e
KKKK.bits.b0=1;
+ x. p) T0 y6 L( b7 n  h+ CKKKK.bits.b1=0;
- q& h' }; [* i! x& ]( mKKKK.bits.b2=1;' B0 p; B, n8 j/ V
KKKK.bits.b3=0;& O% n! t5 K1 O5 Y) c5 \
KKKK.bits.b4=1;; ]8 V6 b* E' R% |3 d. r. ~
KKKK.bits.b5=0;
/ q6 Q2 W+ V9 b0 \1 L8 iKKKK.bits.b6=1;+ k7 A9 n2 y4 }; @  c- H% Y
KKKK.bits.b7=0;( l" k. s7 ~4 n

1 }, U( r3 n9 U. y6 w7 f/ v. v* D然后& j- M& g6 B" d6 v3 z
KKKK.word8=0x55。
" B& p# _8 s3 j5 `* x! W" G+ u同样方法可以构造16位和32位的) _; r8 s' v7 v% D
7 }' u6 r3 C; a6 m5 I

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-29 08:10 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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