bytes [0] == 0xFF始终为false

时间:2015-06-04 18:41:37

标签: android android-studio

我正在将一些BLE代码从iOS移植到Android,我们需要做的部分是检查一些标记值。它在iOS中运行良好但是当我在Android Studio中放入相同的代码时,会给我一个警告,说我的条件总是假的。这就是我所拥有的:

if(bytes[0] == 0xFF && bytes[1] == 0xFF && bytes[2] == 0xFF && bytes[3] == 0xFF && bytes[4])
{
    event.type = EventType.NONE;
}

我认为操作顺序有些奇怪,所以我尝试将每个检查包装成自己的括号,但它仍然说同样的事情。我想摆脱警告,但我似乎无法管理。

1 个答案:

答案 0 :(得分:3)

Java字节已签名且可包含-128到127之间的值,0xFF被解释为整数值而不是字节,并且您实际上将值-1与255进行比较,因此您的比较失败。

您应该使用bytes[0] == -1(bytes[0] == (byte) 0xFF