首页 > 代码库 > 位运算的特殊运用

位运算的特殊运用

位运算的特殊运用

位运算主要有,&,|,~,^等几种,这几种在编程方面能极大地优化程序,所以掌握他们势在必行,所以就总计一下。

&:

主要可以用来求某数的其中一个二进制位,常用的有求某个数转化为二进制后的最后一位。

可以用 a&(-a)进行快速求解

|:

可以将某个数转化为二进制后的某些位设为1,通过该数与想要相应位数为1其他位为零的数进行或运算即可

~:

可以间接转化某个数:如:求32位的最大值。可以用~0u=2^32-1;

^:

异或则可以用来不借助中间变量来实现两个数的交换,还可以将一个数的某些位取反

例如:交换a和b 可以用 a=a^b;b=b^a;a=a^b;(还有一种方法,就是a=a+b;b=a-b;a=a-b;也能实现不借助中间变量来实现两者的转化)。