[英]Convert 11 byte hex string to byte array of size 16
我有一个11字节的十六进制字符串"0017333032CD4900186F41"
。 我必须将此字符串转换为字节数组,并且做得很好,并获得正确的结果。 但是,按照特定的消息格式,我想将此十六进制字符串转换为大小为16而不是11的字节数组。这可能吗?
我尝试了hex.getBytes("UTF-8")
,这给了我一个大小为32的数组。是否有一个11字节的十六进制字符串作为16字节的数组?
BlackBerry应用程序的Java中有此要求。 这已在Android和iPhone中成功实现。 Android正在使用ByteConverter
中的ByteConverter
lib获得所需的结果:
Dim data() As Byte
data = Bconv.HexToBytes(data_hex)
十六进制字符串表示一个带有2位数字的字节(16²= 256)。
因此,将字符串data_hex
用零data_hex
到右边,直到其长度为2 * 16 =32。然后执行HexToBytes转换。
尝试
String s = "0017333032CD4900186F41";
BigInteger bi = new BigInteger(s, 16);
byte[] a1 = bi.toByteArray();
byte[] a2 = new byte[16];
System.arraycopy(a1, 0, a2, 16 - a1.length, a1.length);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.