在我的小型NFC相关项目中,我正在尝试设置一个byte []作为我正在使用的Mifare Classic 1k芯片的验证密钥。何时设置如下:
private byte[] key = {(byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff};
它最终成为-1 -1 -1 -1 -1 -1
...为什么Android会像这样翻译它,以及它应该如何真正编码?
答案 0 :(得分:2)
这与Android或NFC无关,这就是Java的工作原理。 byte
已签名,这意味着其中一个位用作符号。 0xff=11111111
,对于Java来说恰好是-1。你的MIFARE卡并不关心这个,所以你的程序应该可以正常工作。