打标、去标工具。
来源:互联网 发布:从零开始学mt4编程 编辑:程序博客网 时间:2024/03/29 03:43
经常有一个对象都是有一个Int类型的字段,用于给该对象进行打标。 一个int类型是32位, 就说明 这样的一个字段,可以被打上32个标 。 每一个标占1位 。 0表示未被打标,1表示已被打标。
写了一个Util来进行打标与去标操作。如下:
public class FlagBitUtil {public static final int FULL_FLAG = 0XFFFFFFFF ;/** * 打标 * @param falg 需要打标的源数 * @param offset 标位 */public static int sign(int flag , int offset){int offsetT = 1 << ( offset - 1);return flag | offsetT ;}/** * 去标 * @param falg 需要移除标的源数 * @param offset 标位 */public static int removeSign(int flag , int offset){int offsetT = 1 << ( offset - 1);offsetT = FULL_FLAG ^ offsetT ;return flag & offsetT ;}/** * 检查标位是否被打标 * @param flag * @param offset 标位 * @return 该标位是否被打标 */public static boolean checkSign(int flag , int offset){int offsetT = 1 << ( offset - 1);return (flag & offsetT) == offsetT ;}}
测试如下:
public class Test {public static void main(String[] args) {int flag = 0 ;//原始标flag = FlagBitUtil.sign(flag, 3);//将标的第3位标记 System.out.println(flag + "\t" + Integer.toBinaryString(flag));flag = FlagBitUtil.sign(flag, 4); //将标的第4位标记System.out.println(flag + "\t" + Integer.toBinaryString(flag));flag = FlagBitUtil.removeSign(flag, 3) ; //将标的第3位标记移除System.out.println(flag + "\t" + Integer.toBinaryString(flag));//检查第1、2、3、4、5位是否被打标System.out.println(FlagBitUtil.checkSign(flag, 1));System.out.println(FlagBitUtil.checkSign(flag, 2));System.out.println(FlagBitUtil.checkSign(flag, 3));System.out.println(FlagBitUtil.checkSign(flag, 4));System.out.println(FlagBitUtil.checkSign(flag, 5));}}
输出:
410012110081000falsefalsefalsetruefalse
0 0
- 打标、去标工具。
- 王企鹅去打
- 《霍元甲》:用心去打,用心去说教
- 打酱油去~ 走起!
- 一拆多 验证打标
- 7.26日,今天去打网球了
- QML+JavaScript,今天我们打兔子去!
- 视觉定位激光打标
- [cocos2dx lua] 打表工具
- jsoup工具去解析html
- 用CSS给图片打标
- 文本比较工具-文本去重复工具
- 昨晚一夜没睡,今天去河南出差打了个来回
- 打jar把第三方的jar也打进去
- 如何把tomcat打到服务中去
- 啊啊!!aiwi滑雪第一关死活打不过去
- log不知道打到哪里去了?
- 暗黑破坏神3难度的钥匙去哪里打?
- s:property的用法
- Hibernate unable to resole proerpty
- JavaScript学习笔记四——Eval函数
- iOS开发- 隐藏键盘总结
- java加密算法
- 打标、去标工具。
- IOS Label 自适应高度
- 【温故而知新】C和C++篇外篇:COleVariant类型
- c 文件操作函数
- ROWNUM Pseudocolumn
- 实现一屏幕自适应登陆
- (黑马程序员)学习笔记,枚举
- OCP 1Z0 052 53
- mysql常见优化