2

シリアル経由で 16 進文字列をデバイスに送信する必要があります。次のようにします。

byte[] c = new byte[3];
c[0] = 0x57;
c[1] = 0x30;
ComPort.Write(c,0,c.Length );

ここで、30 のような int の値を に変換するc[1] = 0x30か、int 値の 34 を に変換する必要がありますc[1] = 0x34。私の言いたいことがわかると思います。

では、どうすればこれを管理できますか?

4

3 に答える 3

8

この形式は2 進化 10 進数と呼ばれます。2 桁の数値の場合、整数を 10 で割り、16 を掛けてから、10 で割った余りを足し戻します。

int num = 45;
int bcdNum = 16*(num/10)+(num%10);
于 2012-08-03T10:49:27.680 に答える
3

これを行う別の方法は次のとおりです。

c[1] = Convert.ToByte(num.ToString(), 16);
于 2012-08-03T11:57:44.133 に答える