int i = 16;
System.out.println(i>>2);
结果是4。
int i = 16;
System.out.println(i>>32);
结果是16。
通常我们都把m>>n理解为当前值m除以2的n次方,同理>32时,结果是它本身,原因就在于位移操作符右边的参数要先进行模32的运算。
例如上述的i>>2,实际上 temp = 2%32 = 2...
分类:
编程语言 时间:
2015-03-31 16:07:44
阅读次数:
156
异或运算
True ⊕ False = True
False ⊕ True = True
False ⊕ False = False
True ⊕ True = False
同或运算
True ⊙ False = False
False ⊙ True = False
False ⊙ False = Ture
True ⊙ True = Ture
或运算
True || Fa...
分类:
其他好文 时间:
2015-03-11 17:16:12
阅读次数:
143
以前感觉移位运算符自己挺明白的,也许是学的时间长了,后来一看,忘得差不多了。现在参考一些网上的学习资料,将位移运算符整理一下,作为知识点总结,也算个积累。在讲移位运算符之前,先简单补充一下原码与补码的知识。一.原码与补码 在计算机系统中,数值一律用补码来存储(表示)。主要原因:使用补码,可以将...
今天在工作中在 js里看到了 >>> 这么一个东西 不认识 而且也没在其他地方没见到过。上网查了资料才知道这是一个运算符 叫无符号右位移运算符,名字挺长也很难理解,是跟二进制有关系的。那既然有向右的了 肯定也有向左的 那就是> 按位右移运算符。 顾名思义 也就是一个向左移动一个向右移动。他和前面的那...
分类:
编程语言 时间:
2014-12-08 17:30:38
阅读次数:
251
位移运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:>(带符号右移)和>>>(无符号右移)。
计算规则如下:
①
左移n位相当于乘以2的n次方。
②
右移n位相当于除以2的n次方。这里是取商哈,余数就不要了。
③ >>>(无符号右移)
运算规则:
按二进制形式把所有的数字向右移动对应位数,低位移出(舍弃),高位的空位补零。对于正...
分类:
编程语言 时间:
2014-12-02 11:49:17
阅读次数:
216
http://blog.csdn.net/songylwq/article/details/9015581http://www.congmo.net/blog/2012/03/11/Long-ByteShifting/
分类:
编程语言 时间:
2014-11-13 14:20:14
阅读次数:
152
JAVA 位运算符和位移运算符java位运算符包括&(与) AND|(或) OR^(异或) XOR~(非) NOT位移运算符包括>>(右移)>>(右移,左边空出的位以0填充)顾名思义,位运算符用于位运算,那就只能对整型或者字符型进行运算。而除了~(非)是一元运算符之外其他的都为二元运算符。所有位运算...
分类:
编程语言 时间:
2014-09-01 00:20:52
阅读次数:
272
状态压缩是一个很广的概念,在OI中也有很多的应用,当我们把他应用到动态规划中,可以用来精简状态,节约空间,也方便转移。最常见的就是用二进制来表是状态,利用各种位移运算,就可以实现\(O(1)\)的转移。状压DP适用于“窄棋盘”上的DP,否则状态太多无法存下。POJ1185炮兵阵地题意:给一个\(N ...
分类:
其他好文 时间:
2014-07-27 23:17:19
阅读次数:
391