我想在android应用程序上检查一些权限,这些权限是从我在不同设备和编程语言上使用的API获得的,但这是我在JAVA (Android)上的第一次尝试,似乎是不同的。
在我的应用程序中,这些权限都在一个类中,该类将它们作为Integer
返回,所以如果我想检查用户是否可以删除(十进制4),我想要这样做:
if(MyClass.getBit()&4){ // Is bit 2 on?
// Yes, is on
}
我得到了以下错误:
需要布尔值,已找到整型。
没关系,我可以把它改成布尔值:
if(MyClass.getBit()&4 != 0){ // Is bit&4 not 0?
// Yes, it is different
}
我得到一个新的错误:
运算符'&‘不能应用于'java.lang.Integer','boolean’
所以我把返回值改为int
,得到的结果是一样的:
运算符'&‘不能应用于'int','boolean’
看起来我走错了路。
如何在安卓上操作bitwises?
发布于 2019-05-30 05:41:07
这是一个优先级问题,你必须加上括号,
if ((MyClass.getBit()&4) != 0){ // Is bit&4 not 0?
// Yes, it is different
}
如果没有括号,它将首先执行(4 != 0)部分,这将返回一个布尔值,然后对该布尔值和左边的整数执行AND运算符。
https://stackoverflow.com/questions/56368886
复制相似问题