>>1  在计算机中可以算作是 / 2 . 但是它比后者的效率更高.这涉及到二进制的问题,实际上 , 在电脑中存储的都是二进制数据. 上面的只是一个二进制的小的应用.现在我抛出我的问题:

假设 有 A , B , C , D , E , F , G 7个逻辑条件 , 它们的规则就是 : 至少有一个为true . 2的7次 - 1 为127种可能.用传统的if ... else的做法 , 前端和后端都为疯掉的. j_0004.gif.现在提供二进制的解决方案,先回顾一下二进制运算符:

逻辑与 :  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 . 大伙可以试一下