本文爱IT技术网http://www.52ij.com/jishu/102.html
使用Java位运算的场景:
判断int型变量a是奇数还是偶数
a1=0偶数
a1=1奇数
要求平均值,例如有两个int型变量x、y,首先求出x-y的和,用2除,但由于x-y的结果可能超出int的最大显示范围,所以位运算有用。
(xy ) ) x^y ) 1;
对于大于0的整数,确定它是2的平方
(x (x-1 ) )==0) ) x!=0;
例如,有两个int型变量x,y,要求两者进行数字交换,比特运算的实现方法:性能绝对高效
x ^=y;
y ^=x;
x ^=y;
求绝对值
输入表格(intx ) )。
{
int y;
y=x 31;
return(x^y )-y; //or:(xy ) y
}
通过模拟运算、位运算实现:
a%(2^n )与a ) a (2^n - 1 )等价
乘法用位运算实现
a*(2^n )与a n等价
除法变换为位运算
a/(2^n )与a n等价
求反数
(x1 ) ) ) ) )。
a % 2与a 1等价
本文爱IT技术网http://www.52ij.com/jishu/102.html