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 就可以。其中,~符号表示按位取反
来看看这是怎么用的吧。
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 就可以。其中,~符号表示按位取反
相关文章推荐
- Java移位运算符定义常量
- Java语言基础{Java_se(02)}-字面量和常量-变量的基本定义和使用-Java表达式-数据类型和分类-基本数据类型的转换-算数运算符-赋值运算符-比较运算符-三元运算符-逻辑运算符
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- Java 常量定义-枚举enum
- 如何在Java中定义常量(Constant)
- java如何引入接口中定义的常量
- Java常量定义需要注意事项及static作用(复习)
- 黑马程序员——java基础语法(一)---关键字、标识符、注释、常量、变量、运算符
- 从Java到C++——常量值的使用和定义
- Java常量的定义
- 通过类字面常量解释接口常量为什么只能定义为static final,类加载过程---Thinking in java
- Java中定义常量(Constant) 的几种方法
- 黑马程序员--------------java基础语法(—)------常量,变量,数据类型和运算符
- 阿里巴巴Java开发手册- 编程规约-常量定义
- C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
- 黑马程序员——Java基础(常量、变量、数据类型、运算符、键盘录入)
- 黑马程序员—【Java基础篇】之语言基础———关键字、标识符、注释、常量和变量及运算符
- scala 常量、变量、方法、类的定义(与java的不同)