您的位置:首页 > 编程语言 > Java开发

Java移位运算符定义常量

2013-05-09 20:01 399 查看
一直忽略这个基本技术。看Eclipse源码的时候经常发现用移位运算符定义常量。

来看看这是怎么用的吧。

public static final int SELECTED = 1 << 1;

public static final int FOCUSED = 1 << 2;

public static final int BACKGROUND = 1 << 3;

public static final int FOREGROUND = 1 << 4;

public static final int HOT = 1 << 5;

用二进制和十进制分别表示为:

1 1

10 2

100 4

1000 8

10000 16

如果一个对象既处于SELECTED又处于FOCUSED状态,只需要把状态设置成11,然后进行或操作就可以了

setType(SELECTED | FOCUSED);

判断时:

如果需要判断是否selected,只需要if(type & SELECTED> 0)

如果需要判断是否focused,只需要if(type & FOCUSED> 0)

如果当前状态是SELECTED和FOCUSED,需要把SELECTED设成false,FOCUSED设成true该怎么办?

status = status & ~SELECTED 就可以。其中,~符号表示按位取反
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐