java编程中使用二进制进行权限或状态控制

Wesley13 等级 145 0 0

直接看代码以及注释吧。

    @Test
    public void main() {
        // PC WEB端
        int pc = 1 << 0;// ...0001=1

        // Android端
        int android = 1 << 1;// ...0010=2

        // iOS端
        int ios = 1 << 2;// ...0100=4

        // WindowsPhone
        int wp = 1 << 3;// ...1000=8

        //----------------校验开始-----------------
        //表示只适用于PC WEB端
        int pcAndAndroid = pc | android;
        //判断是否有android端
        System.out.println((pcAndAndroid & android) == android);// true
        //判断是否有ios
        System.out.println((pcAndAndroid & ios) == ios);// false
        //去掉android,加入ios,判断是否有ios,   pcAndAndroid & (~android) 去掉android
        System.out.println((((pcAndAndroid & (~android)) | ios) & ios) == ios);// true
        //去掉android,加入ios,判断是否有android,  false
        System.out.println((((pcAndAndroid & (~android)) | ios) & android) == android);// false

        //--------------
        // android/ios/win phone
        int aiw = android | ios | wp;
        //判断是否有android 并且有win phone
        System.out.println((aiw & (android | wp)) == (android | wp));// true
        //判断是否有android 并且有pc
        System.out.println((aiw & (android | pc)) == (android | pc));// false
    }

顺便看看Oracle数据库怎么弄,比较麻烦咯,不建议这么搞,毕竟数据存进去也得计算一次

位与的操作,在应用程序里是经常会用到的, 
Oracle也提供这样的函数 
BITAND(x,y) 
SQL> select bitand(7, 31) from dual; 
BITAND(7,31) 
------------ 
7 
但是Oracle里没有提供bitOr的函数,没关系 
bitand和bitOR是有关系的。 
关系如下 
BITOR(x,y) = (x + y) - BITAND(x, y); 
BITXOR(x,y) = BITOR(x,y) - BITAND(x,y) = (x + y) - BITAND(x, y) * 2; 
SQL> select 7+31-bitand(7, 31) as bitor from dual; 
BITOR 
---------- 
31
收藏
评论区

相关推荐

【Flutter 实战】安装Flutter
1.3 搭建Flutter开发环境工欲善其事必先利其器,本节首先会分别介绍一下在Windows和macOS下Flutter SDK的安装,然后再介绍一下配IDE和模拟器的使用。 1.3.1 安装Flutter由于Flutter会同时构建Android和IOS两个平台的发布包,所以Flutter同时依赖Android SDK和iOS SDK,在安装Fl
H5唤醒APP
Android使用iframe唤起,ios采用window.location.href唤起更合适一点。 1.ios系统:  在wap中唤起app其实应用最最广泛的并不是Universal Link,而是直接Schema跳转  window.location.href = "taobao://fulushuka.tmall.com/shop/view\_
IOS全局变量
IOS中的全局变量和JAVA中的全局变量定义和使用方法不一样,在Java中,只需要将变量定义为static就行了。而在IOS中这种方法不适合。 IOS中定义全局变量有三种方法: 1.使用extern关键字 在AppDelegate.m或AppDelegate.h中写入你需要的全局变量名,例如:int  name;注意定义全局变量时候不能初始化,否则报错
IOS真机测试
学习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发有点不同,Android开发我更觉得跟web(Html)倒是有类似的地方,都是节点标签显示的,当然个人理解,感觉提示也没IOS开以及.NET开发那么强,可能是我还不是太熟悉eclipse开发环境,当然当做出东西能导入到自己的Android机还是挺兴奋的。今天晚上摸索了一
java编程中使用二进制进行权限或状态控制
直接看代码以及注释吧。 @Test public void main() { // PC WEB端 int pc = 1 << 0;// ...0001=1 // Android端 int android = 1 <<
Unity Profiler连接Android真机调试
  Profiler在Editor模式就可以观看性能消耗,但是毕竟电脑配置高,跟手机真机环境还是有区别。实际开发中的优化还是推荐用真机测试。 因为IOS一般比Android手机的配置高,在Android平台做好优化一般在IOS也没太大问题,下面介绍Profiler连接Android真机调试。 一  Profiler监测Unity打出包来直接运行到手机上的
iOS狂暴之路(开始篇)
**一、学习路线规划** ============ 现如今移动端的两大平台Android和iOS是风光无限,但是又有谁能够保证这两个平台能够昌盛一辈子呢?谁也不敢保证其中一个在未来几年之后就会成为第二个诺基亚,所以我们现在会Android的同学应该考虑学习iOS,会iOS同学也是否要考虑学习Android。那么从这篇文章开始我们就来开启我们的iOS学习之旅
500G 史上最全的JAVA全套教学视频网盘分享
**500 G JAVA视频网盘分享(JEECG开源社区)** =============================== **\[涵盖从java入门到深入架构,Linux、云计算、分布式、大数据Hadoop、ios、Android、互联网技术应有尽有\]** > 500 G JAVA视频网盘分享(JEECG开源社区) > \[涵盖从java入门
Android学习(八)Zygote
Zygote ------ Zygote同ServiceManager都是由init解析rc脚本时启动的,相关脚本如下: service zygote /system/bin/app\_process -Xzygote /system/bin --zygote --start-system-server class main socket zyg
Android开发:Android虚拟机启动错误Can't find 'Linux version ' string in kernel image file
**Android启动出错,虚拟机报错信息如下:**   Starting emulator for AVD 'test' _emulator: ERROR: Can't find 'Linux version ' string in kernel image file: E:\\CoCosStudio\\ADT\\adt-bundle-windows
Android自动化测试,5个必备的测试框架
Appium ------ Appium是一个开源的移动测试工具,支持iOS和Android,它可以用来测试任何类型的移动应用(原生、网络和混合)。作为一个跨平台的工具,你可以在不同的平台上运行相同的测试。为了实现跨平台的功能,Appium使用了供应商提供的Android UI框架来实施测试:在iOS中使用XCTest,在Android中使用UIAutom
Cocos Creator 运行时与本地代码双向通讯
cocos creator 游戏在发布到android/ios等平台时,难免要与本地原生平台互相调用。 官方为我们提供了Java 原生反射机制和Objective-C 原生反射机制。以android的Java平台为例 ### cocos creator 运行时调用android原生环境 var o = jsb.reflection.cal
Flutter 1.0 正式版: Google 的便携 UI 工具包
Flutter 1.0 正式版: Google 的便携 UI 工具包 文 / Tim Sneath,Google Dart & Flutter 产品组产品经理 Flutter 是 Google 打造的 UI 工具包,通过一套代码同时在 iOS 和 Android 上 构建媲美原生体验的精美应用! 如今,移动开发者们在同时兼容 iOS 和 Android
MTK Android修改System分区
Z:\\rk3326\_p\_hq\_rf8637sa\\device\\rockchip\\common\\BoardConfig.mk #Calculate partition size from parameter.txt USE\_DEFAULT\_PARAMETER := $(shell test -f $(TARGET\_DEVICE\_D
React native project deleted on xcode, can't run “run
**1 - Delete your ios and android folder** **2 - In your project directory:** react-native upgrade **3 - link for any native dependency:** react-native link