ID: 17679016

中职《C语言程序设计(第3版)》(人邮版·2023)第12章 位运算 同步课件(共14张PPT)

日期:2026-02-23 科目: 类型:课件 查看:75次 大小:1947648B 来源:二一课件通
预览图 1/7
中职,14张,课件,同步,运算,12章
  • cover
(课件网) C语言程序设计 第12章 位运算 第1讲:位运算符与表达式 1.位运算概述 提纲 2. 位运算符及表达式 1.位运算概述 C语言程序设计 位运算定义: 二进制由0和1组成,每一个0和1的状态称为位状态。位与位之间的运算称为位运算。 计算机内存储器结构 1个字节 1个字节 最高位 最低位 例如:十进制数12,对应的二进制结果0000000000001100。 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 2.位运算符与表达式 C语言程序设计 位运算符及含义: 位运算符 含义 & 按位与 | 按位或 ^ 按位异或 ~ 按位取反 << 左移 >> 右移 注意说明: (1)位运算符中除~以外,均为二目运算符。 (2)运算量只能是整型或字符型数据,不能为实型数据。 2.位运算符与表达式 C语言程序设计 (1)“按位与”运算符(&)———And 方法:0&0=0,0&1=0,1&0=0,1&1=1。 例如:0x23与0x45按位与运算。 0 0 1 0 0 0 1 1 (0x23) 0 1 0 0 0 1 0 1 (0x45) &) 1 0 0 0 0 0 0 0 特殊用途: “与0清零、与1保留”,即可以通过这种方式对数据的某些位进行清零,某些位保留不变。 (0x01) 2.位运算符与表达式 C语言程序设计 (2)“按位或”运算符(|)———Or 方法:0 | 0=0,0 | 1=1,1 | 0=1,1 | 1=1。 例如:0x23与0x45按位或运算。 0 0 1 0 0 0 1 1 (0x23) 0 1 0 0 0 1 0 1 (0x45) |) 1 1 1 0 0 1 1 0 特殊用途: “或1置1、或0保留”,即可以通过这种方式对数据的某些位进行置1,某些位保留不变。 (0x67) (0x66) 2.位运算符与表达式 C语言程序设计 (3)“按位异或”运算符(^)———Xor 方法:0 ^ 0=0,0 ^ 1=1,1 ^ 0=1,1 ^ 1=0。 例如:0x23与0x45按位异或运算。 0 0 1 0 0 0 1 1 (0x23) 0 1 0 0 0 1 0 1 (0x45) |) 0 1 1 0 0 1 1 0 特殊用途: “异或1取反,异或0保留”,即可以通过这种方式对数据的某些位进行取反,某些位保留不变。 (0xaa) 2.位运算符与表达式 C语言程序设计 (4)“按位取反”运算符(~)———Not 方法:~0 =1,~1=0。 例如:0x55按位取反运算。 0 1 0 1 0 1 0 1 (0x55) ~) 0 1 0 1 0 1 0 1 2.位运算符与表达式 C语言程序设计 (5)“左移”运算符(<<)———Lsh 方法:用来将一个数的各二进制位全部左移若干位。 例如:a的二进制为01001100,求a<<3 0 1 0 0 1 1 0 0 运算前a 0 1 1 0 0 0 0 0 运算后a 补零 2.位运算符与表达式 C语言程序设计 (6)“右移”运算符(>>)———Rsh 方法:用来将一个数的各二进制位全部右移若干位。 例如:a的二进制为01001100,求a>>3 0 1 0 0 1 1 0 0 运算前a 0 0 0 0 1 0 0 1 运算后a 补零 C语言程序设计 第2讲:常见编译错误与调试 第12章 位运算 1. 变量类型问题 提纲 1.变量类型问题 解决办法: C语言程序设计 问题描述: 变量类型定义为float。 实型数据不能进行位操作,将float修改为int。 运行结果 语句编写 main() { float a,b; //定义变量类型为float scanf("%f",&a); //输入变量a的值 b=a>>3; //a右移3位 printf("b=%f",b); //输出b的值 } 编译错误 main() { int a,b; //定义变量类型为int scanf("%d",&a); //输入变量a的值 b=a>>3; //a右移3位 printf("b=%d",b); //输出b的值 } 46 ↙ b=5 谢谢 ... ...

~~ 您好,已阅读到文档的结尾了 ~~