- 2
- 0
- 约3.78千字
- 约 38页
- 2019-05-14 发布于广东
- 举报
C语言程序设计—提高篇 C语言既是一种高级语言,广泛应用于应用软件的开发和程序设计,同时又是一种低级语言,可以用于系统软件的开发和程序设计,如自动控制系统中的过程控制、参数检测、数据通讯等控制程序,都可以综合利用C语言中的指针操作、位运算和位段技术来实现。 本章介绍位运算的基本形式和常用运算符,并简要介绍位段的概念。位运算的深入学习,应该在《计算机原理》和《汇编语言程序设计》课程中进行。 位运算概述 所谓“位运算”,是指按二进制位进行运算。 位运算的特点:运算按二进制逐位进行——没有借位和进位。 位运算量:整型(int,short,unsiged,long)/字符型(以补码/ASCII码形式存储),不可为实型。 位运算符还可与赋值运算符相结合,进行位运算赋值操作。如: a=b 等价于 a=ab a=b 等价于 a=ab 位运算时的数据类型为char/int,分析时要化为二进制形式,但在程序中书写及输出结果时仍为char/int。 负数以补码形式参与运算 注意与逻辑运算区别 应用示例 ① 从整数a最右端第m个位置开始取该位开始右面n位 。 算法如下: b=a(m-n+1) c=~(~0n) d=bc 注:位自右向左从0开始编号 应用示例 ② 将一个整数a循环右移n位。 算法如下: b=a(16-n) c=an c=c|b C语言允许在一个结构体中以位为单位来指定其成员所占内存长度。这种以位为单位的成员称为“位段”。 * ——提高篇 第4章 位运算 内容概述 位运算操作 位段的概念 教学目标 字节和位的有关概念; 正确使用常见的位运算符和位运算操作; 牢记位段的要领及位段的使用方法。 4.1位运算符和位运算 位运算符 (Bitwise Operators) a 2 左移 flag ^ 0xC4 按位异或 ^ b 3 右移 flag 0x37 按位与 (关系运算符) (低) flag | 0x5A 按位或 | (高) ~flag 按位取反 ~ (算术运算符) 举例 (赋值运算符) 优先级 名称 运算符 按位与 (Bitwise AND) 运算规则 0 0 = 0; 0 1 = 0; 1 0 = 0; 1 1 = 1; 用法 按位清零 保留某些指定位 位运算符的使用 例1 #include stdio.h void main( ) { unsigned char a,b; printf(Enter a and b:); scanf(%o,%o,a,b); printf(ab=%o\n,ab); } 计算 010 000 (a) 011 000 (b) 010 000 001 010 (a) 010 000 (b) 000 000 Enter a and b: 20,30 ab=20 Enter a and b: 12,20 ab=0 按位或 (Bitwise Inclusive OR) 运算规则 0 | 0 = 0; 0 | 1 = 1; 1 | 0 = 1; 1 | 1 = 1; 用法 按位置一 例2 #include stdio.h void main( ) { unsigned char a,b; printf(Enter a and b:); scanf(%o,%o,a,b); printf(a|b=%o\n,a|b); } Enter a and b: 20,30 a | b=30 Enter a and b: 12,20 a | b=32 计算 010 000 (a) | 011 000 (b) 011 000 001 010 (a) | 010 000 (b) 011 010 按位异或 (Bitwise Exclusive OR, XOR) 运算规则 0 ^ 0 = 0; 0 ^ 1 = 1; 1 ^ 0 = 1; 1 ^ 1 = 0; 说明 相“异”则为1,相“同”则为0 相当于按位且无进位的加法 例3以下程序的功能是将a数据的低4位取反。 #include stdio.h void main() { unsigned char a=0x39, b= ; a=a^b; printf(%x\n, a); } 答案:0x0f 计算 0011
您可能关注的文档
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(4).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(5).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(6).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(7).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(8).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(9).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(10).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(1).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(2).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(3).ppt
- 2026浙江金华市武义县人力资源开发服务有限公司招聘11人备考题库完整答案详解.docx
- 2026浙江丽水市青田县民政局招聘民政系统人员7人备考题库参考答案详解.docx
- 2026湖南常德市桃源县公安局警务辅助人员招聘20人备考题库附答案详解.docx
- 2026湖北华中农业大学AI+高蛋白玉米饲用节粮工程研究院扬翔特聘教职岗位招聘9人备考题库及答案详解.docx
- 2026湖南株洲市应急管理局辅助人员招聘5人备考题库及参考答案详解一套.docx
- 2026湖北武汉市文旅资本控股有限公司招聘1人备考题库含答案详解.docx
- 2026湖南时空信息数据公司招聘3人备考题库及参考答案详解一套.docx
- 2026湖南怀化市会同县林城镇第一完全小学招聘公益性岗位人员1人备考题库及参考答案详解.docx
- 2026湖南师范大学附属中学公开招聘88人备考题库精选答案详解.docx
- 2026湖南常德烟草机械有限责任公司招聘24人备考题库附答案详解.docx
原创力文档

文档评论(0)