Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
来源:互联网 发布:网络歌手囚鸟的歌曲 编辑:程序博客网 时间:2024/05/22 02:09
一、Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
1、与(&)
0 & 2 = 0
000010010
2、非(~)
~0 = 7
000111
3、或(|)
0 & 2 = 2
000010010
4、异或(^)
1 & 2 = 3
001010011
二、运用场景。(类似打标)
public enum FlagEnums { A(1, "高"), B(2, "富"),
C(3, "帅"),
;
private int bit; private String desc; FlagEnums(int bit, String desc) { this.bit = bit; this.desc = desc; } /** * 获取当前Flag十进制的值 * * @return */ public long getBit2Value() { BigDecimal posValue = new BigDecimal(2); posValue = posValue.pow(bit); return posValue.longValue(); } /** * 判断Flag中该位有没有打上 * * @param flag * @return */ public boolean isBitOn(long flag) { if ((flag & getBit2Value()) == getBit2Value()) { return true; } return false; } public int getBit() { return bit; } public void setBit(int bit) { this.bit = bit; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; }}
用户个性标签,我们可以用falg值来表示,个性标签组合决定了falg值。每个标签的 与 操作组合起来就是falg值了
下面对用户分别进行如下三种操作 :
①、给用户贴上"高"标签
flag | FlagEnums.A.getValue()
②、给用户抹掉"高"标签
flag & (~FlagEnums.A.getValue())
③、判断用户是否有"高"标签
FlagEnums.A.isBitOn(flag);
0 0
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例-与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
- matlab常用的字符串操作函数之一
- java读取txt文件
- 打个招呼
- 详细解析Linux /etc/passwd文件
- MATLAB常用字符串函数之二
- Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
- Spfa算法模板
- Tyvj2017清北冬令营入学测试
- vector容器删除某些元素且释放内存
- git 常用命令
- linux文件设置权限命令umask
- d3.js中的选择元素
- 如何实现 C 语言的继承和多态
- linux系统为什么把进程的4G地址空…