位运算的特殊运用

位运算的特殊运用

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

&:

主要能够用来求某数的当中一个二进制位。经常使用的有求某个数转化为二进制后的最后一位。

能够用 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;也能实现不借助中间变量来实现两者的转化)。 

 

原文地址:https://www.cnblogs.com/lxjshuju/p/6849891.html