boolean match = ((data[0] & 0xFF) == 0xFE);
比较整数,因为0xFF是整数,此表达式 会将您的字节
data[0]扩展为int并将括号内的内容与第二int进行比较
0xFE(254)。至于你说的
data[0]是
(byte)0xFE,它将首先被调整为整数
0xFE且相比于整数
0xFE,所以这个作品。
boolean match = (data[0] == 0xFE);
将一个字节与int比较
0xFE:
254
data[0] = (byte) 0xFE;
是一个字节(有符号),其值为
-2。
-2不等于
254,因此这就是为什么在比较integer之前必须将data [0]作为字节比较或按比例放大到整数
0xFE。
一个更简单的比较可能是
boolean match = (data[0] == (byte)0xFE);



