相信大家有碰到过这样一种情况:需要计算用户当前处于哪种状态,从而做出相应的处理。这时可以采用二进制记录某个用户的多个状态,然后通过位运算,便可快速得出当前状态的结果或者得出当前用户处于哪种状态。
1、背景
在做黄金理财项目的时候,黄金用户是有多种状态,后端需要记录当前用户处于何种状态,然后返回给前端或其他接口,进而引导用户做出相应的处理动作。用户需要在多种状态之间进行流转,而且状态是不可逆的。
我们通过下图:2 的n-1次幂的二进制和十进制数的对应关系可以看出,从二进制低位开始的第n位始终为 1 ,其他都是 0 。
对应于后端,在进行位运算的时候,二进制位第一位1对应的十进制数为 1
,第二位对应的十进制数为 2
,第三位对应的十进制数为 4
,以此类推,通过上面的图也可以看出。
接着我们定义枚举类code值为换算后的十进制数,后面使用工具