在JavaCard中将字节转换为短整型

3
在Java Card中,只使用小数据类型(byte和short)。 我试图将byte转换为short,以便将其用于检查条件等。 当在Java Card中使用类型转换将byte转换为short时,它会给我一些其他的负数。 请告诉我如何将(11111111)即ff存储在单个字节中转换为short。
我正在使用: 1.智能卡类型=接触式卡 2.使用Java Card 2.2.2 3.使用APDU和JCOP
3个回答

1

我知道你已经有答案了,但据我所知,一个好的方法是使用javacard.framework.Util的makeShort方法,当你提供2个字节时,它会返回short类型。


1

Java Card语言不就是和Java一样吗?那么你可以写出以下代码:

shortvar = bytevar&0xFF;


你非常接近了。大多数Java卡不支持int,因此需要添加一些强制转换为short:shortvar = (short) (bytevar & (short) 0xFF) - Robert
@Robert 不需要将值0xFF进行内部转换为short类型,虽然我将其作为一个short常量(例如private static final short UNSIGNED_BYTE_MAX = 0xFF; - Maarten Bodewes

1
你可以使用 javacard.framework.Util.makeShort(byte b1, byte b2) 方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接