阿川CH
学海无涯,上栽上栽!
Toggle navigation
阿川CH
主页
归档
标签
位运算技巧
java
位运算
2018-03-09 15:31:55
12
0
0
cqc
java
位运算
# 位运算技巧 ## 按位与 __运算规则__ ``` 0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1 ``` __使用技巧__ - `0`与任何(也就0或1)'被与数'都得0 - `1`与任何'被与数'都得'被与数'自身 __使用案例__ - 将第5个标志位设置为0(不论第5位是否为0):`0x10111100 & 0x11101111 = 0x10101100` - 将所有标志位清0:`0x11111111 & 0 = 0` ## 按位或 __运算规则__ ``` 0 | 0 = 0 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1 ``` __使用技巧__ - `0`与任何(也就0或1)'被或数'都得'被或数'自身 - `1`与任何'被或数'都得1 __使用案例__ - 将第5个标志位设置为1(不论第5位是否为1):`0x01000011 & 0x00010000 = 0x01010011` - 判断奇偶:`n&1=0`为偶数,否则奇数 ## 按位异或 __运算规则__ ``` 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 ``` __使用技巧__ - `0`与任何(也就0或1)'被异或数'都得'被异或数'自身 - `1`与任何'被异或数'都得'被异或数'反数(这里说明下反数的定义:1的反数是0,0的反数是1) - 任何数与0异或都得数本身 `n^0=n` - 任何数与自身异或都得0。`n^n=0` __使用案例__ - 两数字交换:`a^=b,b^=a,a^=b` - 计算绝对值:`int j = n >> 31, (n ^ j) - j` - 与-1异或相当于取反。`n^-1=~n`
上一篇:
mysql操作
下一篇:
leanote 云笔记+博客
文档导航