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

Posted

技术标签:

【中文标题】在 JavaCard 中将字节转换为短字节【英文标题】:Convert byte to short in JavaCard 【发布时间】:2011-12-12 12:12:30 【问题描述】:

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

我正在使用:

    智能卡类型 = 联系人卡 使用java卡2.2.2 与 jcop 一起使用 apdu

【问题讨论】:

【参考方案1】:

Java Card 语言不就和 Java 一样吗?然后就可以写了

shortvar = bytevar&0xFF;

【讨论】:

你很亲密。大多数 javaCard 不支持 int,因此必须添加一些转换为 short:shortvar = (short) (bytevar & (short) 0xFF). @Robert 不需要将内部强制转换为短值 0xFF,尽管我将其设为短常量(例如 private static final short UNSIGNED_BYTE_MAX = 0xFF;【参考方案2】:

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

【讨论】:

【参考方案3】:

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

【讨论】:

以上是关于在 JavaCard 中将字节转换为短字节的主要内容,如果未能解决你的问题,请参考以下文章

将范围-1到1的浮点数转换为短的快速方法?

Android中的短到字节和字节到短的转换

如何在objective-c中将字节值转换为int

在python中将字节转换为位

如何在php中将字节数组转换为整数?

在 Swift 中将字节数组转换为 UIImage