欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C语言具有位逻辑运算和移位运算的独特功能解读ppt课件.ppt

    • 资源ID:1375710       资源大小:245.50KB        全文页数:17页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言具有位逻辑运算和移位运算的独特功能解读ppt课件.ppt

    12.1 位运算,C语言具有位逻辑运算和移位运算的独特功能,参与位运算的运算量必须是整数。位逻辑运算包括&、|、四种运算,移位运算有两种运算。其中位单目运算符。,12.1.1 按位与12.1.2 按位或12.1.3 按位异或12.1.4 按位取反12.1.5 按位左移12.1.6 按位右移12.1.7 位运算的复合赋值运算符,12.1.1 按位与,参与运算的量,如果相对应的两位都为1,则该位的结果值为1,否则为0,即: 0&0=0 0&1=0 1&0=0 1&1=1如:a的值为0 x1234,b的值为0 x00,a&b运算的结果c应为: a 0001 0010 0011 0100 & b 0000 0000 1111 1111 c 0000 0000 0011 0100 按位与常用于将某个运算量的某些位清0或提取某些位的值,如本例中,将变量的高8位清0,同时保留或提取低8位的值,可用一个高8位为0,低8位为1的值0 x00ff和它进行按位与。,12.1.2 按位或,参与运算的量,如果相对应的两位都为0,则该位的结果值为0,否则为1,即: 0|0=0 0|1=1 1|0=1 1|1=1如:a的值为0 x1234,b的值为0 x00,a|b运算的结果c应为: a 0001 0010 0011 0100 |b 0000 0000 1111 1111 c 0001 0010 1111 1111 按位或常用于将某个运算量的某些位置1,如本例中将变量的低8位置1,高8位不变,可用一个高8位为0,低8位为1的值0 x00ff和它进行按位或。,12.1.3 按位异或,参与运算的量,如果相对应的两位相异,则该位的结果为1,否则为0,即: 00=0 01=1 10=1 11=0如:a的值为0 x1234,b的值为0 x00,ab运算的结果c应为: a 0001 0010 0011 0100 b 0000 0000 1111 1111 c 0001 0010 1100 1011 按位异或有“与1异或”该位翻转,“与0异或”该位不变的规律。如本例中用0 x00ff进行按位异或,使变量a的低8位翻转,高8位不变。,12.1.4 按位取反,将参与运算量的相对应位的值取反,即1变0,0变1。如:a的值为0 x1234,a运算的结果c应为: a 0001 0010 0011 0100 c 1110 1101 1100 1011,12.1.5 按位左移,按位左移是将一个运算量的各位依次左移若干位,低位补0,高位舍弃不要。假设机器字长为8位,变量a的值为16,将a左移二位,即a=a2: 左移前 0001 0000 左移后 0100 0000由此看出,左移一位相当于该数乘2,左移二位相当于乘4,即22,但这要以该数左移之后不“溢出”为前提。所谓“溢出”指该数已超过机器字长所能容纳的范围,如该例若继续左移二位,该数为16 24=256,超出了字长8位的表示范围(257),即产生了溢出。,12.1.6 按位右移,按位右移是将一个运算量的各位依次右移若干位,低位被移出,高位对无符号数补0,对有符号数要按最高符号位自身填补。右移一位相当于该数除以2,但有可能带来误差。假设机器字长为8位,变量a值为15,将a右移二位,即a=a2: 右移前 0000 1111右移后 0000 0011 如果a是带符号的负数,a=-16,存放在机器中的补码为1111 0000,则a=a2,值为- 4。 右移前 1111 0000 右移后 1111 1100,表12.3 位运算符的运算规则,12.1.7 位运算的复合赋值运算符,共有五种位运算的复合赋值运算符:&=(位与赋值)、|=(位或赋值) 、= (位异或赋值) 、=(按位右移赋值)、=3 相当于a= a3,12.2 位段的概念,所谓位段,相当于结构体类型中的成员,但是定义位段的长度是以位为单位。它是一种特殊的结构体类型。,(1)位段的定义,定义位段的一般形式为:,struct 结构体类型标识符 unsigned 位段名1:长度1; unsigned 位段名2:长度2; . unsigned 位段名n:长度n; 变量名表;,(2)说明:,在定义中,每个位段(相当于成员)的长度是以位为单位,因此位段的类型为unsigned。,2. 一个位段必须存储在同一存储单元,不能跨两个单元。即一个位段的长度不能大于一个单元存放。,3. 当某个位段开始存放时,若相应的存储单元空间不够,则剩余空间不用,该位段将在下一个单元存放。,例如,设某个系统存储单元长度为8(一个字节),且有如下的定义:struct unsigned a:4; unsigned b:2; unsigned c:6;x;,4. 可以定义无名位段。,例如: struct unsigned a:4;unsigned :3;unsigned b:2;unsigned c:6; x;,此位段无名,该3位闲置不用。,5. 可以用长度为0的无名位段,使下一个位段从另一个存储单元开始存放。,struct unsigned aa: 4;unsigned : 3;unsigned bb: 2;unsigned : 0;unsigned cc: 6; y;,6. 注意,不能定义位段数组。,(3)位段的引用:,可以用赋值语句赋值 例: x.a=4; y.cc=6;,可以在表达式中引用, C语言将自动将其转换 为int类型 例: x.a+; y.cc=y.aa+1;,可以用整型格式输出 例: printf(“a=%d b=%d c=%d”, x.a, x.b, x.c);,变量名. 位段名,

    注意事项

    本文(C语言具有位逻辑运算和移位运算的独特功能解读ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开