此字节操作的结果是什么?

问题描述 投票:1回答:1

我发现,在APDU消息中,当您必须表示511之类的数字时,您将写0x01 0xFF而不是0x1FF。如果要重新创建数字,请执行操作

short number = (short) (b1<<8 | b2 & 0xFF);

其中b1为0x01,b2为0xFF。为什么我们必须进行此操作,并且b1 << 8和b2&0xFF的意义是什么?谢谢!

byte javacard
1个回答
0
投票

首先,我将重命名您的变量。 b1将被称为B1,b2的重要性较低,在下面的代码中将被称为B0。然后b31到b0将改为指示位位置,因为这是我习惯的。 b31是整数的最高有效位,b0是整数的最低有效位。

请注意,所有Java数学运算都会得到int。这对于通常不带int的Java Card运行时来说是一件非常麻烦的事,但让我们继续进行说明。

© www.soinside.com 2019 - 2024. All rights reserved.