位运算 AND
当对一对数位执行位运算 AND 时,如果数位均为 1 则返回 1
运算 | 结果 |
---|---|
1111 & 0000 | 0000 |
1111 & 0001 | 0001 |
1111 & 0010 | 0010 |
1111 & 0100 | 0100 |
位运算 OR
当对一对数位执行位运算 OR 时,如果其中一位是 1 则返回 1
运算 | 结果 |
---|---|
1111 | 0000 | 1111 |
1111 | 0001 | 1111 |
1111 | 0010 | 1111 |
1111 | 0100 | 1111 |
位运算 XOR
当对一对数位进行位运算 XOR 时,如果数位是不同的则返回 1
运算 | 结果 |
---|---|
1111 ^ 0000 | 1111 |
1111 ^ 0001 | 1110 |
1111 ^ 0010 | 1101 |
1111 ^ 0100 | 1011 |
位运算左移(<<)
这是零填充的左移,一个或多个零数位从右被推入(乘以2)
运算 | 结果 |
---|---|
5 | 101 |
5 << 1 | 1010 |
位运算右移(>>)
这是保留符号的右移,最左侧的数位被从左侧推入,最右侧的数位被移出(整除2)
运算 | 结果 |
---|---|
5 | 101 |
5 >> 1 | 10 |
权限认证
// 权限声明
let STYLE = 1
let CLASS = 1 << 1
let COUNT = 1 << 2
// 授权 |
let vnodeType = STYLE | CLASS
// 判断权限 &
console.log('STYLE=>' + (vnodeType & STYLE)); // 有 STYLE 权限
console.log('CLASS=>' + (vnodeType & CLASS)); // 有 CLASS 权限
console.log('COUNT=>' + (vnodeType & COUNT)); // 没有 COUNT 权限
// 删除权限 ^
vnodeType = vnodeType ^ CLASS
console.log('STYLE=>' + (vnodeType & STYLE)); // 有 STYLE 权限
console.log('CLASS=>' + (vnodeType & CLASS)); // 没有 CLASS 权限
console.log('COUNT=>' + (vnodeType & COUNT)); // 没有 COUNT 权限
1137.第 N 个泰波那契数
上一篇