Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
一、Java的位运算符实例——与(&)、非(~)、或(|)、异或(^)
1、与(&)
0 & 2 = 0
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 1 | 0 |
2、非(~)
~0 = 7
| 0 | 0 | 0 |
| 1 | 1 | 1 |
3、或(|)
0 & 2 = 2
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 1 | 0 |
4、异或(^)
1 & 2 = 3
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 0 | 1 | 1 |
二、运用场景。(类似打标)
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);
随机推荐
- 从今天起,正式步入cnblogs,向曾经的脚印说声对不起!
步入这个行业也好多年了,从来没有定居过一个地方. 看过很多前辈们留下的资料,对后者门(其中还有我)留下很多珍贵的东西. 所以,我要向前辈学习,壮大自己,在学习的同时,不要忘记帮助别人. 对曾经我留下的 ...
- freemarker截取字符串
[#if a.title?length lt 23 ] ${a.title} [#else]${a.title[0..22]}...[/#if]
- 十个免费的Web压力测试工具
两天,jnj在本站发布了<如何在低速率网络中测试 Web 应用>,那是测试网络不好的情况.而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的W ...
- 原创js模型驱动
使用ajax方式请求数据,向页面展示一个对象的时候,往往让人头疼的是一大堆 .val() .text()方法,这样做固然不会出错,但是效率太低 以下提供一个自己编写的Jquery模型驱动插件,正在测 ...
- [2015编程之美] 第一场C
题目3 : 质数相关 时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 两个数a和 b (a<b)被称为质数相关,是指a × p = b,这里p是一个质数.一个集合S被 ...
- Spring3中用注解直接注入properties中的值
在bean(可是controller, service, dao等了)中,使用@Value注解: @Service public class TestService{ @Value("${s ...
- WCF 服务调用RFC 出现异常
我在VS2010的WCF项目用connecter 3.0 调用 RFC 运行到 IDestinationConfiguration ID = new SAPConfig(); ...
- Eclipse中出现Select at least one project解决办法
今天遇到个问这个问题的,顺便帮解决了,是在导入工程的时候出现的,这是因为有同名的工程的,进入windows->show view->project explorer 这里找出来删掉再导入工 ...
- 关于word2010中完美解决数学公式(正斜体)输入的解决方案
测试环境 win10(64位) office2010(32位)——64位的没有测试,估计应该也可以. 需要软件(包)(请按照下面顺序安装) ①VC运行库(自行百度下载即可) ②北大方正word公式数学 ...
- Robotium 系列(2) - 简单介绍Monkey和MonkeyRunner
除了Robotium,Android还有其他的自动化测试方法,比如Monkey和MonkeyRunner. 这里就做一个简单的介绍和使用方法. 本文提纲: 1. Android SDK以及SDK中的工 ...