Bitwise-位运算入门

& 运算符的应用

1)奇偶判定
通常判定偶数的方法是用 %(mod)

number % 2 == 0

但是我们可以用位与 & 来判定

number & 1 == 0

2)取末五位

3)消除末五位

4)2的幂 判定

除了 我还能说什么?!

| 运算符的应用

#include <stdio.h>
int main() {
    int x;
    scanf("%d", &x);
    printf("%d\n", x & 0b11111111111111111111111111101111); 
    return 0;
}

#include <stdio.h>
int main() {
    int x;
    int a = 0b10000; 
    scanf("%d", &x);
    printf("%d\n", (x | a) - a ); 
    return 0;
}

XOR 满足的运算定律

1)自个 与 自个 XOR 等于false (引火烧身?)

a ^ a = 0

2)任何数 与 0 XOR 等于它本身

a ^ 0 = a

3)交换律

a ^ b = b ^ a

4)结合律

(a ^ b) ^ c = a ^ (b ^ c)

XOR运算符的应用

#include <stdio.h>
int main() {
    int a, b;
	while (scanf("%d %d", &a, &b) != EOF) {
	    a = a ^ b;   // (1)
	    b = a ^ b;   // (2)
	    a = a ^ b;   // (3)
	    printf("%d %d\n", a, b);
	}
	return 0;
}

关于位运算还有好多

这只是入门!

posted @ 2022-02-09 23:51  越菜越自信  阅读(438)  评论(0)    收藏  举报