二进制位运算:框架中的使用

63 阅读1分钟

首先简单了解一下最常见的位运算

  1. & ,两者都为1,才是1

        01101
    &   10101
    =   00101
    
  2. ,两者有一个为1,才是1

        01101
    |   10101
    =   11101
    
  3. 异或^,两者不同则为1,两者相同则为0

        01101
    ^   10101
    =   11000
    

多用于授权和鉴权

定义一些权限

VISITOR = 1<<1

VIP_USER = 1<<2

OPERATOR = 1<<3

ADMIN = 1<<4

授权 |

const user = VISITOR | VIP_USER | OPERATOR

鉴权 &

user & VISITOR 为 2

user & VIP_USER 为 4

user & OPERATOR 为 8

user & ADMIN 为 0

我们一般只求结果boolean,常常会这样写

!!(user & VISITOR) 为 ture

!!(user & VIP_USER) 为 ture

!!(user & OPERATOR) 为 ture

!!(user & ADMIN) 为 false