1C语言允许对内存中的字节或字节内的二进制位进行运算,即位运算
1位运算符和位运算位运算符共6种:&|^~说明:1
位运算符中除了~是单目运算符外,其余均为二目运算符,即要求运算符两侧各有一个运算对象
运算对象只允许是整型或字符型数据
包括:char,short,int,long,unsigned
第十二章位运算2312
1“按位相与”运算符(&)作用:对参加运算的两个二进制数按位进行逻辑与运算
规则:0&0=0,1&0=0,0&1=0,1&1=1例如:a=1,b=2,则:a&b=0000000010000000011111110111111110000000000000000aba&b用途:“与”0可以屏蔽掉某些位,“与”1可以筛选出某些位
典型的用法有:1)清零
欲对一个字节清零,通常是“与”上0x00
2)取出一个数中的某些指定位
比如有一个整数a,欲取出它的低8位,应:000010010000110011111111000000000000100100000000a0x00ffc412
2“按位相或”运算符(|)作用:对参加运算的两个二进制数逐位进行逻辑或运算
规则:0|0=0,1|0=1,0|1=1,1|1=1例如:a=1,b=1,则:a|b=1
000000010000000011111111111111111111111111111111aba|b用途:“或”1可以屏蔽掉某些位,“或”0可以筛选出某些位
典型的用法主要是:置1
欲对某些位置1,只需在相应位上“或”1便可
5例如:a=15,b=0,则:a^b=15
000011110000000000000000000000000000111100000000aba^b例:main(){inta=3,b=4;a=a^b;b=b^a;a=a^b;printf(“%d,%d”,a,b);}输