有用的位运算


1. &运算 :位与运算。相同位的两个数字都为1,则为1;若有一个不为1,则为0。
00101&11100的结果是00100 
一个数&1的结果就是取二进制的最末位。这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数。
public void testNumber(int a) {
		if ((a & 1) == 1) {
			System.out.println(a + "是奇数");
		} else if ((a & 1) == 0) {
			System.out.println(a + "是偶数");
		}
   }
2. <<运算:左移运算。a  << b就表示把a转为二进制后左移b位(在后面添b个0)。
例如100的二进制为1100100,而110010000转成十进制是400,那么100<< 2 = 400。可以看出,a << b的值实际上就是a乘以2的b次方,因为在二进制数后添一个0就相当于该数乘以2。
       计算2的m次方时,可以写成1<<m,但是要求m<31,否则得到的结果不是2的m次方。原因是2的31次方超出了int型(Integer.MAX_VALUE=2的31次方-1),java会做特殊处理的。但是如果引入long型的整数做运算,结果就会不一样。1l<<31的结果就是2的31次方的值。

阅读更多
下一篇多线程基础知识第一篇:创建线程3种方式
想对作者说点什么? 我来说一句

c++位运算c++位运算

2011年08月02日 63KB 下载

java位运算.docx

2011年10月26日 50KB 下载

c语言位运算c语言位运算

2010年03月10日 38KB 下载

C语言位运算

2011年10月24日 205KB 下载

Java 中的位运算 .doc

2009年03月04日 109KB 下载

没有更多推荐了,返回首页

关闭
关闭