教学内容:14
1位逻辑运算14
2位移位运算14
3复合位运算14
4位段教学要求:1
掌握按位与运算、按位或运算、按位异或运算、取反运算、左移运算、右移运算的运算规则
掌握位段的应用
第14章位运算为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中
C语言提供了实现将标志状态从标志字节中分离出来的位运算功能
C既具有高级语言的特点,又具有低级语言的功能,位运算能力就是其特色之一
位运算就是指进行二进制位的运算
C提供的位运算有:名称运算符名称运算符按位与&按位异或按位或¦左移14
1位逻辑运算1
位运算说明(1)位运算的操作数,只能是整型或字符型数据,不能为实型数据
(2)位运算符中除按位取反“~”为单目运算符外,其余均为二目运算符,即要求两侧各有一个运算量
(3)参与运算时,操作数都必须首先转换成二进制形式,然后再执行相应的按位运算
按位与运算符(1)按位与运算符:&(2)按位与运算格式:操作数&操作数(3)按位与运算规则将2个操作数先转换成二进制数(补码),当参加运算的2个二进制数之对应位都为1,则该位的结果为1,否则为0,即:0&0=00&1=01&0=01&1=1例:3&5=13的补码:000000115的补码:000001013&500000001取一个数中的某些指定位清零如:a:0010110010101100b:0000000011111111(377)8a&b0000000010101100结果得到a的低8位(4)按位与运算作用main(){intx,y;x=25;y=568;printf(“x&y:%d\n”,x&y);printf(“3&14:%d\n”,3&14);printf(“-3&14:%d\n”,-3&14);printf(“12&12:%d\n”,12&12);}运行结果:x&y:243&1