内容正文:
《C语言学习与应用》教学课件
任务说明
数据在计算机内是以二进制形式存储的,程序设计能够操纵二进制的位,位运算多用在控制和运算中,将程序的输入和输出与文件挂钩,悄悄地完成数据处理任务更能显示出程序设计的魅力。本任务主要讨论流式文件的打开、关闭、读、写、定位等各种操作。
本学习任务重点掌握各种位运算符及运算规则,能够从文件读写数据。
学习任务12 位运算与文件操作—复制文件
微课
任务说明
学习任务12 位运算与文件操作—复制文件
知识要求
掌握各种位运算符。
掌握位运算规则。
掌握文件的读写知识。
了解打开文件的各种方式。
了解文件操作的相关函数。
学习任务12 位运算与文件操作—复制文件
‹#›
能够依据要求设计位运算。
能够依据规则救出位运算的结果。
能够打开、关闭指定文件。
能够运用函数正确的操作文件。
能够排查文件操作中的错误。
能力要求
学习任务12 位运算与文件操作—复制文件
‹#›
位运算
01
位运算的作用很多,效率很高,所以一般能用位运算的就不用其他运算,程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算就是直接对整数在内存中的二进制位进行操作。在C语言中,位运算的对象只能是整型或字符型数据,不能是其他类型的数据。
学习任务12 位运算与文件操作—复制文件
‹#›
位运算
01
1.位运算符
按优先级由高到低的顺序:
~(位取反,单目运算符)
<<(左移)
>>(右移)
& (与)
^ (异或)
| (或)
学习任务12 位运算与文件操作—复制文件
‹#›
位运算
01
2.位运算符的运算功能
(1)按位取反。
按位取反(~)是单目运算符,运算对象位于运算符右边,如~a的运算功能是将a的每一位翻转,1变为0,0变为1。
学习任务12 位运算与文件操作—复制文件
‹#›
应用举例12-1 取反,求~0115
分析:~0115就是八进制数115按位取反,先将其转换为二进制数,再按位取反。
~01001101按位取反为:10110010就是0262
即:~0115 的值为:0262。
程序代码:
#include "stdio.h"
void main( )
{unsigned char x=0115,y; //用unsigned char类型,是1个字节均是正数。
y=~x;
printf("%o",y); //按八进制形式输出
}
程序输出:262
学习任务12 位运算与文件操作—复制文件
微课
应用举例12-1
学习任务12 位运算与文件操作—复制文件
位运算
01
2.位运算符的运算功能
(2)左移(<<)。
形式:a<<整型表达式
左边是位移对象,右边是整型表达式,表示位移的位数。左移时,右端(低位)补零,左端(高位)移出舍弃,若左端移出的不含1,则左移1位,相当于给移位对象进行乘以2的操作。
学习任务12 位运算与文件操作—复制文件
‹#›
应用举例12-2 左移
分析:char a=32,b,c;
b=a<<1;
c=a<<3;
a: 00100000 <<1 移位后为:01000000,b的值是64。
a: 00100000 <<3 移位后为:00000000,有1溢出,c值为0。
学习任务12 位运算与文件操作—复制文件
问题12-1 编写程序实现应用举例12-2的功能。
运行后输出:.......................................
...................................................
...................................................
...................................................
...................................................
...................................................
学习任务12 位运算与文件操作—复制文件
位运算
01
2.位运算符的运算功能
(3)右移(>>)。
形式:a>>整型表达式
左边是位移对象,右边是整型表达式,表示位移的位数。右移时,右端(低位)移出的二进制位被舍弃,左端(高位)移入的二进制位为0(对无符号整数和正整数)或1(对负整数,高端补1,因负数是用补码表示的)。若右端移出的不含1,则右移1位相当于给移位对象进行除以2的操作(对于正数,若移