在我与 NFC 相关的小项目中,我试图将一个 byte[] 设置为我正在使用的 Mifare Classic 1k 芯片的身份验证 key 。什么时候这样设置:
private byte[] key = {(byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff};
它最终变成了 -1 -1 -1 -1 -1 -1
... 为什么 Android 会这样翻译它,它应该如何编码?
最佳答案
这与 Android 或 NFC 无关,这就是 Java 的工作方式。 byte
是有符号的,这意味着其中一位用作符号。 0xff=11111111
,这恰好意味着 Java 的 -1。你的 MIFARE 卡不关心这个,所以你的程序应该可以正常工作。
关于android字节数组正在缩短数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12855272/