有用的位运算

原创 2015年07月07日 11:46:50

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次方的值。

相关文章推荐

C++位运算简介

  • 2013年09月18日 04:30
  • 6KB
  • 下载

韩顺平位运算

  • 2014年01月13日 14:43
  • 45KB
  • 下载

LUA5.2版本中提供的位运算

Bitwise Operations This library provides bitwise operations. It provides all its functions inside t...

C#位运算及运算符

  • 2012年10月16日 12:07
  • 18KB
  • 下载

位运算操作

  • 2013年07月20日 19:18
  • 36KB
  • 下载

关于android中位运算的一些看法

在安卓开发中,经常会遇到 `action & MotionEvent.ACTION_MASK` , android:gravity="left|top",`intent.setFlag(xx|xx|x...

C#枚举中的位运算

  • 2012年09月28日 19:44
  • 23KB
  • 下载

C语言-位运算和预处理命令

  • 2013年07月12日 20:34
  • 166KB
  • 下载

java &|~<< 位运算设计权限代码!查询权限、增加权限、删除权限

java &|~>> 请参考我前几篇博文
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有用的位运算
举报原因:
原因补充:

(最多只允许输入30个字)