随笔记录
按位操作的使用场景
2016-4-22 diaba
    此次开发系统过程遇到一个问题,开始用一个字段用来标识是否做某件事儿,系统已经上线,发现需要记录是否的需求增加了2个,那么没有额外的字段,怎么办?

    针对此问题,设计了一个方案,利用按位操作符来满足此需求:

        该字段原来取值0/1,表示没做/已做

        现在设计该字段取值为三位二进制对应的十进制:

		二进制(想象)	对应十进制值		        含义
000 0 三者都没做
100 4 1做;2、3没做
110 6 1、2做;3没做
111 7 1、2、3均做



    判断某项是否做,操作因子:

		100				4
010 2
001 1






    如果检查1是否已经做,可以使用按位与操作:   






{当前状态} & {操作因子} == {操作因子} ——> currentStatus & 4 == 4






    根据状态经过3操作,得到新状态值:






{当前状态} | {操作因子} ——>  currentStatus | 1






发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容