0

次のように送信するために変数を16進数として表現するにはどうすればよいですか-

a='00'
write("\x#{a}") => 0x00

受信した文字列変数を生データのコマンド文字列に含めて、次のようにcomポートに渡そうとしています-

cmd="\x45\x#{a}\x01"
Send(cmd)

ルビーで

ありがとう

4

1 に答える 1

1

String#to_i関数は base 引数を取ります。デフォルトは 10 ですが、代わりに 16 を渡すことができます。これにより、必要な数値が文字列ではなく数値として取得されます。そこから、Integer#chr関数を使用して、必要な値 (元の文字列で表されるバイナリ値を持つ文字を含む文字列) を取得できます。

于 2012-09-07T22:06:30.503 に答える