苏州科技大学电子与信息工程学院程序设计及C语言(提高篇)课件 第四章.pptVIP

  • 2
  • 0
  • 约3.78千字
  • 约 38页
  • 2019-05-14 发布于广东
  • 举报

苏州科技大学电子与信息工程学院程序设计及C语言(提高篇)课件 第四章.ppt

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

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档