c语言中的按位或
⑴ C语言中什么是按位或运算
位运算是在二进制层面上进行的运算
位或就是在两个二进制上进行按位的或运算
像普通的逻辑运算一样 两个里有一个为真就返回真(逻辑真 就是1 逻辑假就是0)
比如两个十进制数 5 和 3 进行位或运算
把他们转换为二进制
5的二进制是 0101
3的二进制是 0011
他们按位或的结果是0111 转换到十进制就是0+4+2+1 是7
⑵ C语言的按位与、或、非、异或都什么意思
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。
优先级从高到低,依次为~、&、^、|
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取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语言里的按位异或运算符
1:“按位与弯销”运算符(&)全1为1,有0则0。拿闹蔽0&0=0,1&0=0,1&1=1
2:“按消州位或”运算符(|)有1则1,全0则0。0|0=0,1|0=1,
1|1=1
3:“异或”运算符(^)相同为0,不同为1。0^0=0,1^0=1,1^1=0