0

私はプロジェクト (Java 2 ee を使用した Web アプリケーション) に取り組んでおりOutputStreamCOMポートで を送信する必要があります。 のデータ型はOutputStreamですbyte[]。このデータの 1 バイトは、通信しようとしている宛先ハードウェアのアドレスです。 . 問題は、ユーザーが Web ページ内でハードウェアのアドレスを提供する必要があることです。では、バイトの文字列表現を実数に変換するにはどうすればよいbyteですか? 次のコードで問題がより鮮明になることを願っています

String data1 = "0xA1";
String data2 = "0xAB";

そして、次の行を OutputStream に入れる必要があります。

byte[] b = new byte[]{0xA1,0xAB};

を使用すると問題を解決できると言う人もorg.apache.commons.codec.binary.Base64いますが、私には手がかりがありません。前もって感謝します。

4

3 に答える 3

3

それは簡単です:

byte b = Integer.decode("0xA1").byteValue();

javadocへのリンク。

于 2013-04-21T06:49:31.833 に答える
1

以下のメソッドを使用して文字列をバイト値表現に変換できますが、「0x」を除いた文字列の一部のみを送信する必要があります。

public static byte convertStringToByte(String str){
    return (byte)Integer.parseInt(str, 16);
}
于 2013-04-21T06:48:08.090 に答える
0

関数呼び出しを介して行うのではなく、自分で行うことを楽しみたい場合は、
以下のようにします

ASCII 値を取得します
2 で割ります リマインダーを収集します (1 または 0 になります)
最後にシーケンス全体を逆にします

たとえば、10 進数の 32 の場合、0100000 を取得する必要があります。

COM ポートを初期化する場合は
、バイナリの代わりにいくつかのシーケンス (ASCII シーケンス) を直接使用することもできます。マニュアルを確認してください。

于 2013-04-21T07:11:19.073 に答える