例如: 状态为
iOSAndroidPC字段为 status
status 字段值二进制表示
1: iOS 2: Android 4: PC
保存
- 选择的是 iOS、Android 则保存为 1|2=3
- 选择的是 iOS、Android、PC 则保存为 1|2|4=7
解析
-
简单例子
const data = [1, 2, 4, 8, 16, 32] // 假如保存的是 3 const result = data.filter(v => v <= 3 && 3&v) -
通用函数
function binaryMultiple(num) { const binary = Array.from({ length: 32 }, (v, index) => Math.pow(2, index)) // const binary = [1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912,1073741824,2147483648] return binary.filter(v => v <= num && v & num) }
搜索读取
-
mysql
where status&n