hugh 的个人博客

忽略的知识点- 逻辑运算符& -如何保存多选项的选择结果

正常使用varchar保存是可以,但是对于大数据量下, 我们还可以利用二进制进行合理的存储

例如

有多选题ABCD四个选项

每一位使用一个二进制数表示选择与否, 1111表示全选, 0000表示未选

存储时可以直接将获取的解决转10进制存储, 

parseInt("1111", 2); //15

还原选项时,可以直接将获取到的值转二进制

(15).toString(2);//1111

如果选中结果为1111, 检查对应项是否选中:

A: parseInt("1111" & "0001", 2) == 1

B: parseInt("1111" & "0010", 2) == 2

C: parseInt("1111" & "0100", 2) == 4

D: parseInt("1111" & "1000", 2) == 8

如果结果为1000,检查对应项是否选中:
A: parseInt("1000" & "0001",2) == 1 // false

B: parseInt("1000" & "0010",2) == 2 // false

C: parseInt("1000" & "0100",2) == 4 // false

D: parseInt("1000" & "1000",2) == 8 //true

 
 

标题:忽略的知识点- 逻辑运算符& -如何保存多选项的选择结果
作者:hugh0524
地址:https://blog.uproject.cn/articles/2019/05/06/1557120220932.html