版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电焊工安全检查知识考核试卷含答案
- 套筒窑石灰煅烧工操作规程水平考核试卷含答案
- 中医特色疗法护理配合
- 儿科护理要点
- 跨部门项目协作沟通管理机制
- 人教版(2024)七年级上册秋季英语10月独立作业(无答案)
- 商业物业停电应急预案
- 寄养区域安全设施检查规定
- 日志审计集中分析策略报告
- 三级医院评审标准实施细则
- 深度强化学习在机器人控制中的应用-深度研究
- 人工智能导论-第2版-全套课件
- 《智慧物流与供应链》课件-项目八 智慧物流与供应链管理的运作模式
- 2024年部编版高考语文一轮复习必背重点:古代文化常识
- GB/T 4706.27-2024家用和类似用途电器的安全第27部分:风扇的特殊要求
- DL∕T 1965-2019 回转式翻车机系统运行维护导则
- 公司及部门年度经营责任书(模板)
- MH-T 5002-2020运输机场总体规划规范
- 甲磺酸奥希替尼片-临床用药解读
- 医务人员职业风险与防护课件
- 9《那个星期天》课件
评论
0/150
提交评论