我如何以一种他们完全理解它的方式向一类Java Card初学者解释这段代码:
private void getBalance(APDU apdu) {
byte[] buffer = apdu.getBuffer();
// inform system that the applet has finished
// processing the command and the system should
// now prepare to construct a response APDU
// which contains data field
short le = apdu.setOutgoing();
if (le < 2) {
ISOException.throwIt((byte) 0x6A86);
}
// informs the CAD the actual number of bytes
// returned
apdu.setOutgoingLength((byte) 2);
// move the balance data into the APDU buffer
// starting at the offset 0
buffer[0] = (byte) (balance >> 8);
buffer[1] = (byte) (balance & 0xFF);//How do i explain what happens here
// send the 2-byte balance at the offset
// 0 in the apdu buffer
apdu.sendBytes((short) 0, (short) 2);
}
答案 0 :(得分:1)
解释整数的二进制表示。 解释&gt;&gt;转移运营商。 解释十六进制符号,以及0xFF变为什么。 解释按位和/或运算符。 将它们放在一起以显示&gt;&gt; 8和&amp; 0xFF的组合如何将16位值分成高字节和低字节。 询问是否有任何问题。