C语言的按位与、或、非、异或都什么意思。有什么用


C语言的按位与、或、非、异或都什么意思。有什么用

文章插图
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~(按位取反) 。
优先级从360问答高到低 , 依次为~、&、^、|
按位与运算有两种典型用法 , 一是取一个位串信息的某几位 , 如以下代码截取x的最低7位:x&0177 。二是让某变量保留某几位 , 其余位置0 , 如以下代码让x只保留最低6位:x=x&077 。
按位杀管提活目或运算的典型用法是将一个位串信息的某几位置为1 。如将要获得最右4位为1 , 其他位与变本据革味百己汉香问二量j原来其他位保持相同 , 可用逻辑或运算磁先017|j;
按位异或运算的典型用法来错刻志足导误存参均是求一个位串信息的某几位信息的反 。如欲求整型变量j的最右4位信息的反 , 用逻辑异或运算017^j , 就能求得j最右4位的信息的反,即原来为1的位 , 结果是0,原来为0的位 , 结果是1 。交换两个值 , 不用临时变量,假如a=3,b=4 。想将a和b的值互换 , 可以用以下赋值语句实现:
a=a^b;b=b^a;a=a^b;
取反运算常用来生成与系统实现无关的常数 。如要将变量x最低6位置成0 , 其余位不变 , 可用林王守务代码x=x&~077实现 。
【C语言的按位与、或、非、异或都什么意思。有什么用】

    推荐阅读