我有一个字节数组,我需要遍历并根据字节值做一些事情。以下是我的代码。比较一个字节和十六进制
for (byte b:byteArray)
{
if(b>=(byte)0x00 && b<=(byte)0x1F)
{
//do something
}
else if(b>=(byte)0x20 && b <=(byte)0xFE)
{
//do something
}
else if(b ==(byte)0xFF)
{
//do something
}
}
我的问题字节比较没有按照我的预期发生。
假设我的字节数组中的值是{31, -117, 8, 0 , -1}
,我拥有的代码无法检测到它们各自范围内的所有负数字节值。例如。 -117应该在0x20
和0xFE
之间,但它不会达到任何范围。
我跟着this answer来比较字节。我无法弄清楚代码中的错误。
提前致谢!
'(字节)0xFE'实际上是'-2' –
字节是用Java签名的。因此,b <=(byte)0xFE'只有两个值:0xfe和0xff。 – EJP
@EJP我应该如何改变我的逻辑来覆盖以下两个范围中的所有可能的字节:0x00-0x1f和0x20-0xFE。对不起,如果问题是非常基本的,但我一直无法弄清楚。 – Exception