为什么要学
因为学习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