シリアル経由で 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
。私の言いたいことがわかると思います。
では、どうすればこれを管理できますか?
この形式は2 進化 10 進数と呼ばれます。2 桁の数値の場合、整数を 10 で割り、16 を掛けてから、10 で割った余りを足し戻します。
int num = 45;
int bcdNum = 16*(num/10)+(num%10);
これを行う別の方法は次のとおりです。
c[1] = Convert.ToByte(num.ToString(), 16);