程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-android中比較byte值的問題

java-android中比較byte值的問題

編輯:編程綜合問答
android中比較byte值的問題

問題:

比較byte數組的值時:

boolean match = ((data[0] & 0xFF) == 0xFE);

然後返回真值,但是:

boolean match (data[0] == 0xFE);

返回的就不是真值,為啥?

data這樣就會byte數組:

data[0] = (byte) 0xFE;

最佳回答:


boolean match = ((data[0] & 0xFF) == 0xFE);

這句是因為把0xFF當做整數來比較,它會自動轉換data[0]為整數型。圓括號裡面的0xFE (254)也會同樣轉換。 就像你說的data[0]是(byte)0xFE。因此會當做整形0xFE 與整形的0xFE 比較,因此會返回正確結果。

boolean match (data[0] == 0xFE);

比較byte和int0xFE : 254

data[0] = (byte) 0xFE;

是byte類型,值是-2

-2和254值不相等, 所以你比較起來和前面結果會不一樣

如果簡化比較:

boolean match = (data[0] == (byte)0xFE);
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved