文档介绍:第12章位运算
课堂教学1学时
课堂教学累计34学时
语言40
位运算符和位运算
运算符
含义
运算符
含义
&
按位与
~
取反
|
按位或
<<
左移
^
按位异或
>>
右移
位运算指二进制位的运算
语言40
说明:
位运算符中~为单目运算符
运算量只能是整型或字符型的数据,不能为实型数据.
语言40
按位与运算符(&)
运算规则
0&0=0; 0&1=0; 1&0=0; 1&1=1
例:3&2=? 问:3&&2=?
3= 00000011
(&) 2= 00000010
00000010 结果
语言40
按位与的特殊用途
原来的数为1的位,新数中相应位为0
00101011 11011101
& 10010100 & 00000000
00000000 00000000
语言40
例:026254=(00101**********)2
分别取其低字节和高字节数据
00101**********
&0000000011111111
0000000010101100
关键数字0377 , 0177400
语言40
按位或运算(|)
运算规则
0|0=0; 0|1=1; 1|0=1; 1|1=1
思考:
060|017=077 060||017=?
语言40
“异或”运算(∧)
运算规则:参加运算的两个二进制数的相应位值不同则取1,反之相同则取0
例:使特定位翻转(低4位翻转)
0172 ∧017=0165
01111010
∧ 00001111
01110101
语言40
取反运算(~)
运算规则:
0变1,1变0
例~025=0177752
思考:!025=?
语言40
左移运算符(<<)
将一个二进制数全部左移若干位
右补0
高位左移后溢出,舍弃不起作用
例:a=15,左移2位
a=a<<2
00001111 ->00 00111100
溢出补0
结果:a=60
左移一位相当于该数乘以2
语言40