内容正文:
YCF
正版可修改PPT
(中职)C语言程序设计案例教程 3.6位运算符与位运算ppt课件
1
位运算符与位运算
Teacher teaching design
CONTENTS
目 录
基本概念 明确考点
案例分析 交流提升
仿真演练 体验探索
基本概念 明确考点
PART 01
基本概念 明确考点
操作符 优先级 运算 规则
| 1(最低) 位或 若两个相应的二进制位只要有一个为1,则该位的结果为1,否则为0
^ 2 位异或 若两个二进制位同号,则结果为0,异号为1
& 3 位与 若两个相应的二进制位都为1,则该位的结果为1,否则为0
<< 4 左移 将一个数的二进制位全部左移若干位
>> 4 右移 将一个数的二进制位全部右移若干位
~ 5(最高) 取反 按位取反,即变压器,1变0
考点一、位运算符的种类、含义及使用
C语言中的位运算的优先级及其作用如表所示:
说明:1、位运算是对字节或字中的实际位进行检测,设置或移位,它只适用于字符型和整数型变量以及它们的变体,对其它数据类型不适用。
2、关系运算和逻辑运算表达式的结果只能是1或0,而位运算的结果可以取0或1以外的值。
3、除“~”运算符外,其它均为又双目运算符,要求两侧各有一个运算量。
基本概念 明确考点
考点二、按位与运算
按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。参与运算的数以补码方式出现。
(1) 运算规则:如果两个运算量相应二进制位都为1 ,则该位结果为1 ,否则为 0 ;
(2) 用途 :要想将一个数某一位清零,就与一个数进行 & 运算,此数在该位取 0;
要想将一个数某一位保留下来,就与一个数进行 & 运算,此数在该位取 1;
要想将一个数某些位保留下来,就与一个数进行 & 运算,此数在这些位全为1 ,不想要的位全为 0即可;
例如:9&5可写算式如下:
00001001 (9的二进制补码)
& 00000101 (5的二进制补码)
00000001 (1的二进制补码)
可见9&5=1。
按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清0 ,保留低八位,可作a&255运算( 255 的二进制数为0000000011111111)。
基本概念 明确考点
【例1】
main()
{
int a=9,b=5,c;
c=a&b;
printf("a=%d
b=%d
c=%d
",a,b,c);
}
【例2】
main()
{ int a=-9,b=-5,c;
c=a&b;
printf("a=%d
b=%d
c=%d
",a,b,c);
}
基本概念 明确考点
考点三、按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。参与运算的两个数均以补码出现。
(1) 运算规则:如果两个运算量相应二进制位有一个为1 ,则该位结果为1 ,否则为 0 ;
(2) 用途 :与 0 进行按位或运算,各位数不变; 与1 进行按位或运算,均变为1
例如:9|5可写算式如下:
00001001
|00000101
00001101 (十进制为13)可见9|5=13
【例3】
main(){
int a=9,b=5,c;
c=a|b;
printf("a=%d
b=%d
c=%d
",a,b,c);
}
基本概念 明确考点
考点四、按位异或运算
按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,参与运算数仍以补码出现。
(1) 运算规则:如果两个运算量相应二进制位异( 即一位为1 ,一位为0)为1 ,同( 即两位均为1 或0)为0 ;
(2) 用途 :与 1 相异或 ,翻转 ;与 0 相异或 ,保留原值;交换两个值,不用临时变量;
例如9^5可写成算式如下:
00001001
^00000101
00001100 (十进制为12)
【例4】
main(){
int a=9;
a=a^5;
printf("a=%d
",a);
}
基本概念 明确考点
考点五、求反运算
求反运算符~为单目运算符,具有右结合性。其功能是对参与运算的数的各二进位按位求反,参与运算数仍以补码出现。
例如~9的运算为:
~(0000000000001001)结果为:1111111111110110
考点六、左移运算
左移运算符“<<”是双目运算符。其功能把“<< ”左边的