我正在尝试将两个字节数组复制到另一个中。问题是结果 Byte 的第一个元素很奇怪,我得到 0xFFFFFF80 而不是 0x80。 我正在使用的代码是:
this.IC_SUBMIT_APDU = new byte[13];
byte[] prefix = {
(byte) 0x80,
(byte) 0x20,
(byte) 0x07,
(byte) 0x00,
(byte) 0x08
};
System.arraycopy(prefix , 0, this.IC_SUBMIT_APDU, 0, prefix.length);
for(int i=0; i<this.IC_SUBMIT_APDU.length ; i++)
System.out.println("" + Integer.toHexString(this.IC_SUBMIT_APDU[i]));
当我给出这个论点时:
{
(byte) 0x41,
(byte) 0x43,
(byte) 0x4F,
(byte) 0x53,
(byte) 0x54,
(byte) 0x45,
(byte) 0x53,
(byte) 0x54
}
它产生以下结果:
ffffff80
20
7
0
8
0
0
0
0
0
0
0
0
为什么我会得到 0xFFFFFF80 ?我不应该得到0x80吗??
最佳答案
0xFFFFFF80 超过一个字节。 0xFFFFFF 部分可能来自您未显示的不同打印语句。
关于java - 使用 arraycopy 结果错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43981491/