位段的用法.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
位段的用法

位段的用法 也许您对位段接触不多,但在实际的开发中如果熟练掌握了位段的使用方法,将会使你 的工作事半功倍,同时写出来的程序也会占用更少资源,这也就意味着您的程序将拥有更高 的运行效率。那么位段到底是什么样子的呢?下面就对它进行详细的讲解。 1、位段的定义 位段与结构体上形式与用法上是很相近的。但位段可以用来描述更为细腻的数 据级别。结构中可以包含各种不同的数据类型,甚至可以是另一种结构体类型,但 它所能表示的最小单位是一个字节,即8位。在给单片机编程时,很多情况下,描 述一个数值或一种状态并不需要这么多位,可能3个或4个位就已经足够了。比如, 要描述“成功”还是“失败”,只需要一个位就可以了。那么如果用1个字节的话 就会浪费7个位。再如在数据通信中,经常会有一个字节中的某些位表示某一含义, 典型的应用是某一位为“1”,表示此数据有效,反之无效。我们就需要一种在“位” 这种级别上的结构来描述它。这种“位”的结构就被定义为“位段”。 2、位段的应用实例 位段在处理位时是非常方便的。以下例来进行说明: 在给定的long型变量dat中,提取第13~15位,如下图所示: 如果我们采用移位方式来实现,可以这样来作: unsignedcharget_bits(unsignedlongdat)//此函数采用移位方式实现 { dat=0x0000e000;//屏蔽13~15位以外的位 return(unsignedchar)(dat13); //右移13位 } 而如果使用位段则可以这样来实现: structbits { unsignedinta:16; unsignedintb:13; unsignedintc:3; }; 采用如下表达式就可将这三个全取出: ((structbits*)(dat))­c; 如果dat=0即0b00000001001000110100010101100111,第13~ 15位为(010)=2。 经验证以上程序的计算结果与之是吻合的: 从上面已经大致可以了解了位段的使用方法了。形如结构体,位长的定义用 unsigned或int来定义。如unsigneda:3或unsignedinta:3定义了定义a为位长为3 的位段成员。 3、位段的用法 1)定义位段时可以有标准数据类型,如下: structbits { unsigneda:2; unsignedb:3; unisngedc:4; inti; }; 这个位段定义中除了定义了各成员的位长以外,还有int型。 2)各位段不足一个字节时,后面的标准数据类型将从新的存储单元开始。 在上例中,其中a、b、c共占9位,占用了1个字节还要多,不到2个字 节。而它后面为int型,占用2个字节。则a、b、c之后的7个位的空间闲置不 用,i从另一个字节开头存放。如下图所示: 3)存储单元中位段的空间分配方向为由低位到高位分配。 上例中的字段分配图只是一个示意图,在内在的实际表示其实是这样的: 先定义的a(2个位),被分配到高16位的低位上,紧接着是b(3个位), 后面的成员分配依此类推。最后的int型,因为是16位,高16位剩余的7个 位不能容纳它,则i被分配到低16位。 4)给位段赋值时的自动截

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档