>>1 在计算机中可以算作是 / 2 . 但是它比后者的效率更高.这涉及到二进制的问题,实际上 , 在电脑中存储的都是二进制数据. 上面的只是一个二进制的小的应用.现在我抛出我的问题:
假设 有 A , B , C , D , E , F , G 7个逻辑条件 , 它们的规则就是 : 至少有一个为true . 2的7次 - 1 为127种可能.用传统的if ... else的做法 , 前端和后端都为疯掉的. .现在提供二进制的解决方案,先回顾一下二进制运算符:
逻辑与 : AND 都为1 才为1
逻辑或 : OR 都为0 才为0
非 : 取反
异或 : 相同则取0
我解释的有些忒抽象 , 有点这方面的印象的话 , 应该看得懂 . 实在不明白的话 , 查下百度吧 , 亲.
万事俱备了 , 开始解决问题
前后台协议:
2的0次 计 A = 1 二进制 1
2的1次 计 B = 2 二进制 10
2的2次 计 C = 4 二进制 100
以此类推
后台 :
如只有A,B,C为true , 则向前端传 1+2+4 = 7 给前端解析
那如果只有A,B 成立呢 传 3
我们以A,B,C成立为例
7 的二进制为 : 111
前端 : 用逻辑与来解析
A 111&1 = 1 true
B 111&10 >> 1= 1 true
C 111&100 >>2 = 1 true
D 111 & 1000 >> 3 = 0 false
...
1 为 true 0 为false . 大伙可以试一下
转载于:https://blog.51cto.com/aonaufly/1624003