摘要: 位运算符允许对整型数中指定的位进行求值和操作。例子名称结果$a & $bAnd(按位与)将把$a和$b中都为 1 的位设为 1。$a | $bOr(按位同或)将把$a和$b中任何一个为 1 的位设为 1。$a ^ $bXor(按位异或)将把$a和$b中一个为 1 另一个为 0 的位设为 1。~ $aNot(按位取反)将$a中为 0 的位设为 1,反之亦然。$a << $bShift left(左移)将$a中的位向左移动$b次(每一次移动都表示“乘以 2”)。$a >> $bShift right(右移)将$a中的位向右移动$b次(每一次移动都表示“除以 2”)。 阅读全文
posted @ 2013-06-06 11:15 小 / 妖 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1. 变量交换首先说个好玩的——诡异的变量交换。交换两个int变量平时写程序会经常用到,当时,常规方法都要用三个变量,但是位运算里不需要第三个变量,仅仅需做三次异或运算:a ^= b;b ^= a;a ^= b;经过这样的三次异或运算后, a、b两个变量的值就交换过来了,原理?原因是异或运算的逆运算就是自己,也就是一个数对一个数异或运算两次就是其本身。2. 位运算实现int型快速乘法运算判断奇偶性(对2取余):a&1 == 0 偶数a&1 == 1 奇数计算2^n1 << n对2^n做乘法或除法:a << n 等价于 a * (2 ^ n)a >& 阅读全文
posted @ 2013-06-06 10:58 小 / 妖 阅读(304) 评论(0) 推荐(0) 编辑