在JavaCard中将字节转换为短字符

在JavaCard中将字节转换为短字符,java,byte,short,javacard,Java,Byte,Short,Javacard,在java卡中,只使用小数据类型(字节和短数据)。 我正在尝试将字节转换为短字节,以便我可以使用它来检查条件等。 当使用java卡中的类型转换将字节转换为短字节时,它会给我一些其他负数。 请告诉我如何转换(11111111)是ff存储在单字节到短 我正在使用: 智能卡类型=联系人卡 使用java卡2.2.2 使用apdu的jcop Java卡语言不是与Java完全相同吗?然后你就可以写了 shortvar=bytevar&0xFF您可以使用javacard.framework.Util.make

在java卡中,只使用小数据类型(字节和短数据)。 我正在尝试将字节转换为短字节,以便我可以使用它来检查条件等。 当使用java卡中的类型转换将字节转换为短字节时,它会给我一些其他负数。 请告诉我如何转换(11111111)是ff存储在单字节到短

我正在使用:

  • 智能卡类型=联系人卡
  • 使用java卡2.2.2
  • 使用apdu的jcop

  • Java卡语言不是与Java完全相同吗?然后你就可以写了


    shortvar=bytevar&0xFF

    您可以使用javacard.framework.Util.makeShort(字节b1,字节b2)方法。

    我知道您已经有了答案,但据我所知,最好的方法是使用javacard.framework.Util makeShort方法,当您给出2个字节时,它将返回short。

    您非常接近。大多数JavaCard不支持int,因此必须添加一些short类型转换:
    shortvar=(short)(bytevar&(short)0xFF)
    @Robert不需要将该内部类型转换为短值0xFF,尽管我将其设为短常量(例如
    私有静态final short UNSIGNED_BYTE_MAX=0xFF;