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

结构体位域操作

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
结构体的位域操作,功能是什么???8 C8 S0 T8 }+ |
5 I$ |7 E2 Z1 o$ ^, D! |
就是为了方便进行位操作,跟51一样每次单独操作1位。具体怎么实现的自己搜索,我也没看太明白,给你举个例子。
* R  Y/ i0 U% ?4 [6 Zunion  union8_def{7 d$ W9 \% M+ E* U7 n
    struct{
" [1 A; J3 q! d( P7 v" c) O2 s        unsigned    b0:1;
- p! P1 {, o* K( _2 O        unsigned    b1:1;
( g7 i* u5 |2 L9 C: L$ L& t        unsigned    b2:1;
3 u; Z! ^) y. m; a' W8 I        unsigned    b3:1;
0 i5 g$ E/ h) F* h. T        unsigned    b4:1;
! N, L! x0 C$ }  t, J2 w        unsigned    b5:1;' J3 X' \; l, x0 S  }: G2 r
        unsigned    b6:1;
3 _! b, c" ~; w0 r2 Y5 o        unsigned    b7:1;0 a$ G- L* J! p) l$ [" `7 X
    }bits;8 H( M" I" r' l
    # ]- B) y6 l0 W4 ~
    u8         word8;; F) q  [1 p3 j8 x
};
7 j# Z, p' C  D: Rtypedef union  union8_def                union8;2 Q0 {& g/ S( s3 }# _( B
" W' @! K0 @$ N, P

* H6 @6 ^  |. J, Eunion8  KKKK;+ Q3 z7 J0 v; o4 N" y
然后你就可以用KKKK.bits.b0 KKKK.bits.b1来进行位操作了) l. \1 q/ K; S6 u2 V! C: m8 s
想看整个数据就用KKKK.word8来查看8个bit组成的整个数字了
  @# w8 o# @( i6 jKKKK.bits.b0=1;
- r. j; \, c% ^' V8 zKKKK.bits.b1=0;
8 n1 R8 V# _! e: M3 B- |4 L; |: R+ XKKKK.bits.b2=1;
* C, `8 o9 a3 l1 F* v* W& PKKKK.bits.b3=0;" W3 b; d4 y9 u  N
KKKK.bits.b4=1;
; W9 P& z2 X9 d4 e: G; e8 jKKKK.bits.b5=0;
' f  v: ?$ \3 U0 O. kKKKK.bits.b6=1;5 e8 H. y2 B& r: m
KKKK.bits.b7=0;
$ \# A/ G; o$ M; j) z
1 l5 ?, N$ h! v  n  v然后
/ O5 W1 L" h1 c6 eKKKK.word8=0x55。
+ N5 U  }1 ^) {9 T( Q同样方法可以构造16位和32位的) |* z* k# b2 d9 }7 l1 o
* n; `' L) i# S0 ^; }3 `; {) j

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-20 07:53 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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