有用的位运算

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

非常有用的位运算技巧

一提起位运算,人们往往想到它的高效性,无论是嵌入式编程还是优化系统的核心代码,适当的运用位运算总是一种迷人的手段,或者当您求职的时候,在代码中写入适当的位运算也会让您的程序增加一丝亮点,最初当我读《编...
  • zynincqupt
  • zynincqupt
  • 2014年07月24日 14:02
  • 488

几个简单有用的位运算

这个是我摘自一个大佬的状压DP中的,不忍修改,摘来留做以后复习吧,望那位大佬不介意 原文链接:请戳我 状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP...
  • look_poet_of_water
  • look_poet_of_water
  • 2018年01月29日 18:02
  • 8

你所不知道的“位运算及运算过程”

原本今天想和大家谈谈什么是正则表达式的,回来的路上忽然想起位运算,刚好这个知识我也很久没复习了,所以今天和大家一起来复习及学习 那么什么是位运算了?答:就是以二进制运算的一种运算符,下面是今天的内容...
  • qq1723205668
  • qq1723205668
  • 2016年06月06日 20:58
  • 840

位运算以及用途详解

 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and...
  • qq51931373
  • qq51931373
  • 2014年08月05日 11:03
  • 1805

深入学习有趣的位运算

在最近学习C语言,接触到不少底层知识。之前一直用Java开发,很少会用到像位运算这样的操作。 通过C语言的学习,才发现位运算真是奇妙,除了简单的类似位反转等基本操作,还可以加密编码, 交换变量值,...
  • dc_726
  • dc_726
  • 2011年12月02日 22:39
  • 4146

关于java代码中的位运算的使用

最近在查看java源码, 其实大量用到了位运算,在看到下面的代码时困惑了 long msb = 0; long lsb = 0; for (...
  • jiubugeinifo
  • jiubugeinifo
  • 2015年12月17日 17:33
  • 863

C语言位运算的高级应用(尤其适合单片机和嵌入式编程)

位运算加速技巧 1. 如果乘上一个2的倍数数值,可以改用左移运算(Left Shift) 加速 300% x = x * 2; x = x * 64; //改为: x = x // 2 == 21 ...
  • IOT_SONG
  • IOT_SONG
  • 2016年05月22日 21:26
  • 1450

位运算的性质

交换律  a|b = b|a a&b = b&a a^b = b^a 结合律 (a|b)|c = a|(b|c) (a&b)&c = a&(b&c) (a^b)^c = a^(b...
  • buptlzx
  • buptlzx
  • 2013年08月30日 17:12
  • 1626

编程中位运算用法总结

位运算应用口诀 清零取反要用与,某位置一可用或 若要取反和交换,轻轻松松用异或 移位运算 要点 1 它们都是双目运算符,两个运算分量都是整形,结果也是整形。          2 "  ...
  • y990041769
  • y990041769
  • 2013年10月23日 19:45
  • 17925

JS该不该用位运算

在Google+上看到,Math.floor更快的实现: Math.floor的作用是丢弃小数。大概只写JS的人理解不了为什么会有这样的语法,然后可能去死记硬背,将来在自己的代码中装装逼,根本原理很...
  • cc7756789w
  • cc7756789w
  • 2016年04月04日 08:52
  • 3194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:有用的位运算
举报原因:
原因补充:

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