0

11 バイトの 16 進文字列があります"0017333032CD4900186F41"。この文字列をバイト配列に変換する必要がありますが、うまくやっていて正しい結果が得られています。ただし、特定のメッセージ形式に従って、この 16 進文字列をサイズ 11 ではなくサイズ 16 のバイト配列に変換したいと考えています。これは可能ですか?

試しhex.getBytes("UTF-8")てみたところ、サイズ 32 の配列が得られました。11 バイトの 16 進文字列を 16 のバイト配列にすることは可能ですか?

この要件は、BlackBerry アプリの Java です。これは、Android と iPhone で正常に実装されています。Android はByteConverter、必要な結果を得るために Basic4Android の lib を利用しています。

Dim data() As Byte
data = Bconv.HexToBytes(data_hex)
4

2 に答える 2

3

16進文字列は、2桁のバイトを表します(16²= 256)。

したがって、2 * 16 = 32の長さになるまで、文字列data_hexの右側にゼロを埋め込みます。次に、HexToBytes変換を実行します。

于 2013-01-07T06:35:28.080 に答える
2

試す

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);
于 2013-01-07T06:37:49.640 に答える