位是针对二进制的运算 按位取反:
#include<stdio.h> int main() { int a = -5; printf("%d", ~a); }位与:
#include<stdio.h> int main() { int a = 5; int b = 8; printf("%d", a&b); }位或:
#include<stdio.h> int main() { int a = 5; int b = 8; printf("%d", a|b); }位异或:
#include<stdio.h> int main() { int a = 5; int b = 1; printf("%d", a^b); }位异或可以交换值:
#include<stdio.h> int main() { int a = 5; int b = 1; int c; c = a ^ b; a = c ^ a; b = c ^ a; printf("%d\n", a); printf("%d\n", b); }交换值的其他方法:
#include<stdio.h> int main() { int a = 5; int b = 1; int c; c = a + b; a = c - a; b = c - a; printf("%d\n", a); printf("%d\n", b); } #include<stdio.h> int main() { int a = 5; int b = 1; int c; c = a ; a = b; b = c; printf("%d\n", a); printf("%d\n", b); }移位:向某个方向移动几就相当于除以2的几次方或乘以2的几次方。 向右移位除以2的几次方:
#include<stdio.h> int main() { int a = 6; printf("%d\n", a>>1); }想左移位相当于乘以2的几次方:
#include<stdio.h> int main() { int a = 6; a<<=1; printf("%d\n", a); }