我有一個字節數組,我需要遍歷並根據字節值做一些事情。以下是我的代碼。比較一個字節和十六進制
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