开发者社区 问答 正文

android中byte值的比较问题

问题:
比较byte数组的值时:
screenshot
然后返回真值,但是:
screenshot
返回的就不是真值,为啥?
data这样就会byte数组:
screenshot

展开
收起
蛮大人123 2016-02-15 10:04:58 2587 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    screenshot
    这句是因为把0xFF当做整数来比较,它会自动转换data[0]为整数型。圆括号里面的0xFE (254)也会同样转换。 就像你说的data[0]是(byte)0xFE。因此会当做整形0xFE 与整形的0xFE 比较,因此会返回正确结果。
    screenshot
    比较byte和int0xFE : 254
    screenshot
    是byte类型,值是-2
    -2和254值不相等, 所以你比较起来和前面结果会不一样
    如果简化比较:
    boolean match = (data[0] == (byte)0xFE);

    2019-07-17 18:42:58
    赞同 展开评论
问答分类:
问答标签:
问答地址: