typescript与位运算 (学习golang学过忘记了,需要写个笔记记录一下)

74 阅读1分钟

为什么要学

因为学习typescript的枚举类型的时候需要用到&(按位与运算符)

与运算和或运算

与运算 1与1 = 1 或运算 0或1 = 1

举例

A: 10101010
B: 11110000 &按位与运算符 逐位进行逻辑与运算,生成一个新的结果

A&B 每一位进行与运算(都有才有,都无就无)

得到C: 10100000

A|B 每一位进行或运算(一有就有,都无才无)

得到D: 11111010

typescript 中 枚举 与 按位与的简单使用(案例取自学习资料)

enum Permission {
    None = 0, //0000
    Read = 1 << 0,    //0001        
    Write = 1 << 1,   //0010
    Delete = 1 << 2,  //0100
    Manage = Read | Write | Delete, // 0111 (这里进行了按位或的运算,得到的值为0111)
}
type User = {
    permission: Permission;
}
const user: User = {
    permission: 0b0010, //0b代表二进制   这里0010 说明用户具有写权限
}

// user.permission 0010 和 Permission.Write 0010 与运算得到 0010 全等于 0010 值为true

user.permission & Permission.Write = 0010

if ((user.permission & Permission.Write) === Permission.Write) {
    console.log("拥有写权限")
}

学习资料C语言 按位与运算和按位或运算_哔哩哔哩_bilibili TS全解:何时用enum类型_哔哩哔哩_bilibili