java基础:位运算用法之保存多选的表单项

来源:互联网 发布:mac注销appstore 编辑:程序博客网 时间:2024/06/05 10:15

一个多选的表单项,保存在数据库里面
1.如果选择范围固定,做字段合适
2.如果选择范围不固定,单列记录表合适。灵活,增加一个中间表,扩展性优于其余两种。
3.还有一种,将多选结果转变成字符串,用分号或者逗号隔开。效率低。查询麻烦。

位运算:这里用于多选状态,存储数据。
Int 32位,long 64位。超过64为建议用上面第三种方法。
一个字段可以解决,后期分析比较代码多一点。
扩展性不高,增加一个状态,要增加相关代码。

参考:
数据库设计——“多选状态标识”的处理
位运算(深入分析举例)
java中通过位运算实现多个状态的判断(我想找的)
java位运算与它的一个巧妙应用(带一个例子)
C#位运算的处理方法(权限管理中的权限运算)(我想找的)

public class WeiYunX {    class eType {        public final static int None        = 0;        public final static int NeiXiao     = (1 << 0);        public final static int RiBen       = (1 << 1);        public final static int QiTaWaiXiao = (1 << 2);    }    public static void main(String[] args) {        wl("1<<0 = " + (1 << 0));        wl("1<<1 = " + (1 << 1));        wl("1<<2 = " + (1 << 2));        wl("1<<3 = " + (1 << 3));        wl("1<<4 = " + (1 << 4));        wl("1<<5 = " + (1 << 5));        wl("1<<6 = " + (1 << 6));        wl("1<<7 = " + (1 << 7));        wl("1<<8 = " + (1 << 8));        wl("1<<9 = " + (1 << 9));        wl("1<<10 = " + (1 << 10));        wl("1<<11 = " + (1 << 11));        wl("1<<12 = " + (1 << 12));        wl("1<<13 = " + (1 << 13));        wl("1<<14 = " + (1 << 14));        wl("1<<15 = " + (1 << 15));        wl("1<<16 = " + (1 << 16));        wl("1<<17 = " + (1 << 17));        wl("1<<18 = " + (1 << 18));        wl("1<<19 = " + (1 << 19));        wl("1<<20 = " + (1 << 20));        wl("1<<21 = " + (1 << 21));        wl("1<<22 = " + (1 << 22));        wl("1<<23 = " + (1 << 23));        wl("1<<24 = " + (1 << 24));        wl("1<<25 = " + (1 << 25));        wl("1<<26 = " + (1 << 26));        wl("1<<27 = " + (1 << 27));        wl("1<<28 = " + (1 << 28));        wl("1<<29 = " + (1 << 29));        wl("1<<30 = " + (1 << 30));        wl("1<<31 = " + (1 << 31));        wl("1<<32 = " + (1 << 32));    }    private static void wl(String msg) {        System.out.println(msg);    }}

执行结果:

//一般等于无状态,不选,为:01<<0 = 11<<1 = 21<<2 = 41<<3 = 81<<4 = 161<<5 = 321<<6 = 641<<7 = 1281<<8 = 2561<<9 = 5121<<10 = 10241<<11 = 20481<<12 = 40961<<13 = 81921<<14 = 163841<<15 = 327681<<16 = 655361<<17 = 1310721<<18 = 2621441<<19 = 5242881<<20 = 10485761<<21 = 20971521<<22 = 41943041<<23 = 83886081<<24 = 167772161<<25 = 335544321<<26 = 671088641<<27 = 1342177281<<28 = 2684354561<<29 = 5368709121<<30 = 10737418241<<31 = -21474836481<<32 = 1
0 0
原创粉丝点击