《精品课程第八章》ppt课件_第1页
《精品课程第八章》ppt课件_第2页
《精品课程第八章》ppt课件_第3页
《精品课程第八章》ppt课件_第4页
《精品课程第八章》ppt课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第8 8章章 位运算位运算 位运算概念位运算符位段8.1 8.1 位运算概念位运算概念 C语言的位运算是指在C语言中能进展二进制位的运算。 位运算包括位逻辑运算和移位运算: 位逻辑运算可以方便地设置或屏蔽内存中某个字节的一位或几位,也可以对两个数按位相加等; 移位运算可以对内存中某个二进制数左移或右移几位等。 8.2 8.2 位运算符位运算符 C语言提供了六种位运算,如下表所示:位 运 算 符 含 义 举 例 & 按位与 a&b | 按位或 a|b 按位异或 ab 按位取反 a 左移 a 右移 b2 8.2.1 8.2.1 位逻辑运算符位逻辑运算符1.“按位与运算符& 运算规那么: 0 &

2、0 =0 0 & 1 =0 1 & 0 =0 1 & 1 =12.“按位或运算符| 运算规那么:0 | 0 =0 0 | 1 =1 1 | 0 =1 1 | 1 =13.“按位异或运算符 运算规那么: 0 0 =0 0 1 =1 1 0 =1 1 1 =04.“按位取反运算符 运算规那么: 0=1 1=0“按位与运算规那么:可以判断一个数据的某一位是否为1;可以保存一个数据中的某些位,屏蔽掉其它位 。“按位或运算可以使一个数据的某些位置为1,其位不变。“按位异或运算可以使一个数据的某些位翻转,即1变为0,0变为1。“按位异或运算可以实现不用临时变量来交换两个变量的值。 a=ab; b=ba;

3、a=ab; 说明:位逻辑运算符的一些用处8.2.2 8.2.2 移位运算符移位运算符 1.左移运算符: 运算规那么:对运算符左边的运算量的每一位全部左移右边运算量表示的位数,右边空出的位补0。 如:a : 运算规那么:对运算符左边的运算量的每一位全部右移右边运算量表示的位数,右边低位被移出去舍弃掉,空出的高位补0还是补1,分两种情况:第一: 对无符号数进展右移时,空出的高位补0。这种右移称为逻辑右移。 第二: 对带符号数进展右移时,空出的高位全部以符号位填补。即正数补0,负数补1。这种右移称为算术右移。8.2.3 8.2.3 位赋值运算符位赋值运算符位赋值运算符是位运算符与赋值运算符的结合。位

4、赋值运算符 含 义 例 子 等 同 于 &= 位与赋值 a&=b a=a&b |= 位或赋值 a|=b a=a|b = 位异或赋值 a=b a=ab = 左移赋值 a=b a=a= 右移赋值 a =b a=ab 8.2.4 8.2.4 不同长度的数据进展位运算不同长度的数据进展位运算 假如两个数据长度不同进展位运算时如a&b,而a为long型,b为int型,系统会将二者按右端对齐。 假如b为正数,那么左侧应该补满0; 假如b为负数,那么左端应该补满1; 假如b为无符号整数,那么左侧补满0。8.3 8.3 位位 段段 位段构造是指构造体成员可以是以位为单位定义 存储长度的构造体。 位段构造的定义

5、形式如下: struct 构造类型名 类型 成员1: 长度; 类型 成员2: 长度; ; 其中: 冒号“:左面的成员称为位段,冒号右面的长度表示存储位段需要占用字节的位数。【例1】 struct device : unsigned a:1; unsigned b:2; unsigned c:4; int x; float y; data;cbaxy1 4 2 1 16 32 说明:位段在一个存储单元中的分配因机器而异,在Turbo C中是从低位向高位分配内存。位段的数据类型必须用unsigned或int类型不能用char和其它类型。对位段的访问与其它构造体的访问方法一样,可以采用圆点运算符和指向运算符。但必须注意不能对位段进展取地址运算,也不能使用超过位段最大值的数据。位段的长度不能超越整型边界。假如某个位段需要从下一个字节开场存放,可以采用: struct unsigned a:1; unsigned :0; unsigned b:2; data;ba跳过空闲 6 2 7 1位段不能定义位段数组位段可以用整型格式符输出。 如: p r i n t f “ % d , % u , % x,data.a,data.b,data.c;位段可以在数值表达式中引用,它会被系统自动地转换成整型数据。本章小结本章小结 C语言的位运算是指在C语言中能进展二进制位的运算。 位运算包括

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论