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

结构体位域操作

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
结构体的位域操作,功能是什么???
' E! H' o6 ~3 m2 Y  B- |) h  R% ~1 `- p6 R4 T$ w
就是为了方便进行位操作,跟51一样每次单独操作1位。具体怎么实现的自己搜索,我也没看太明白,给你举个例子。: l( M3 R& T0 S# z
union  union8_def{% L2 X) b; n2 h/ h
    struct{
* V4 [. }/ ?0 _3 V$ Q7 H- q        unsigned    b0:1;
9 q3 g3 f1 N1 q, ~! |1 P        unsigned    b1:1;$ S& K% R- D" n6 ^
        unsigned    b2:1;
( }/ d) a- _" s3 j' g" J4 P" }1 Z        unsigned    b3:1;/ H: j9 \! Y- s2 v+ p5 F
        unsigned    b4:1;8 l( R. T$ r# v! N, ]
        unsigned    b5:1;
0 h- H+ b4 G" i2 t/ Y        unsigned    b6:1;
5 f3 K# X( R1 c, Z$ h- U. d        unsigned    b7:1;8 F6 f! j3 k& `, S3 u
    }bits;
7 m) Z& Y4 s$ H& v5 V   
2 b4 L& M: s* Z/ K4 A. ?    u8         word8;
+ o( \3 o2 m! s; C! |. R( j& n};
1 d3 X1 L- s# {typedef union  union8_def                union8;
9 n& ]4 {% ^: _4 Y/ ^, l. e$ @7 l% B! ~; `
6 D8 s5 F# J* f" {: W
union8  KKKK;9 p& T" \2 f6 K! b
然后你就可以用KKKK.bits.b0 KKKK.bits.b1来进行位操作了0 R  P1 N. b8 p( n
想看整个数据就用KKKK.word8来查看8个bit组成的整个数字了4 s6 K6 q3 ?( e8 _" [
KKKK.bits.b0=1;
8 Q3 J4 b/ C5 s- o9 DKKKK.bits.b1=0;: r4 t4 L8 K% L( V8 u
KKKK.bits.b2=1;6 z3 n5 D& M* [5 N0 E
KKKK.bits.b3=0;
  }2 ~1 @/ L4 X0 X2 z4 EKKKK.bits.b4=1;
" y4 S) H2 d  w5 U6 e  eKKKK.bits.b5=0;3 i& ^) W  V( |9 ^1 }$ l
KKKK.bits.b6=1;
3 S4 l6 h2 X/ }& o( i% X5 @% ^KKKK.bits.b7=0;
+ F. o4 `+ o3 c% }, N' m6 a& }
6 O9 f* b, M9 U% Q; O) w. L( C9 |8 z然后
8 B+ z1 y' b. OKKKK.word8=0x55。2 z" ^' f0 f0 h
同样方法可以构造16位和32位的
- h! I4 d1 ^- W7 }0 f7 w+ B) W  O+ p# ?& s1 C8 K% Y

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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