C# 2、10、16、16およびそれらのASCIIコード --------//シリアルポート通信用のC#における様々な文字型の変換------------
文字長の理解 文字列s = 「私は2の兵士です」; int len = s.長さ; 6人の登場人物 byte[] sarr = System.Text.Encoding.Default.GetBytes(s); len = SARR。 長さ; 11バイト
十進法を文字列に変換するのは意味がなく、対応するASCIIコードに変換しなければなりません int t1 = 81; 文字列 s1 = t1。 ToString(); この小数点変換は意味を通すためにASCII文字に対応しています。 s1 = ((char)t1)。 ToString();
16進数から文字列へ:これは意味が通りません。 それはトストリングです。 int intAB = 0x16; s1 = intAB.ToString(); 16進数からASCII文字: バイトバッブ = 0x45; ストリングアス=((char)babb)。 ToString();
ASCII文字列から十進数への変換 文字列 tr = 「2Ab Liu」; 文字列 d =""; (int i = 0; 私は<。 長さ; i++) { int ii = (int)Convert.ToChar(訳) 部分文字列(i, 1)); d = d +" "+ ii.ToString(); }
ASCII文字列から16進数への変換 文字列 s2 = 「2 Ab Liu」; byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2); StringBuilder sb = 新しいStringBuilder(); foreach(baのバイトB) { SB。 Append(b.ToString("x") + " "); }
16進から10進まで int intA = 0x16; 定義する際は0xでなければなりません ストリング strA = 「16」; 文字列は を 以下に含めることができます。 int intA1 = Convert.ToInt32(intA); int intA2 = Convert.ToInt32(strA, 16);
10歳から16歳まで strA = Convert.ToString(intA2, 16);
10進から2進数まで、16進数も同様です int int10 = 10; string str2 = Convert.ToString(int10,2);
二進法から十進数へ int10 = Convert.ToInt32(str2,2);
//-------------------------------------------------------------------------------
C# serialportはどのようにして16進数の集合を受け取るのですか C# SerialPortはどのようにして16進数の集合を受け取り、プログラムはどのように書くべきでしょうか? 最良の回答です System.IO.Ports.SerialPort sp = 新しいSystem.IO.Ports.SerialPort("COM1"); intバッファサイズ = 6; 16進数の大きさ(例えば6バイト) Byte[] buffer = 新しいByte[buffersize]; バッファを作成する SP。 Read(buffer, 0, buffersize); COM1より朗読
この16進数の集合は処理されます
C# シリアルポートがデータを送信します バウンティポイント:5 - 解決時間:2009年10月19日 21:15 シリアルポートに16進説コマンドを送りたいです。コマンド文字列は「00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A」 上記の文字列を数値的に変換して、コンピュータのシリアルポートに送信した文字列が16進数であることを認識させるにはどうすればいいですか? 質問補足: そのようなサンプルコードを持っている方はいませんか?助けてください。私はハードウェアメーカーでソフトウェアには詳しくありません。マスターが詳細なコードを教えてくれると嬉しいです。ありがとうございます! 質問者:ダイシュアンチン - インターンレベル1 最良の回答です 参照を追加してください:Microsoft.VisualBasic(C#コードですが、参照が必要です)。 )
以下の方法でシリアルポートネームをトラバースすると、すべてのシリアルポートを取得します Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer(); foreach(PCの文字列S。 Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
次に、表示されるシリアルポート名 comNameを使って操作オブジェクトを取得します。 このシリアルポートを開けることができます:
System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName); com。 Open();
その後、データはシリアルポートに書き込めます
シリアルポートへのデータ送信: com。 WriteLine(this.textBox1.Text); バイト配列も書くことができます com。 Write(bArray,0,5); これは、0から始まる5バイトで、バイト配列bArrayを書き込むことを指します
データも受け入れられます: com。 ReadLine() バイトの読み込みも可能です com。 ReadByte();
最後に、閉鎖されました: com。 Close();
また、16進文字列をバイトに変換してください バイト b = Convert.ToByte("1A",16); C# シリアルポートがデータを送信します バウンティポイント:5 - 解決時間:2009年10月19日 21:15 シリアルポートに16進説コマンドを送りたいです。コマンド文字列は「00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A」 上記の文字列を数値的に変換して、コンピュータのシリアルポートに送信した文字列が16進数であることを認識させるにはどうすればいいですか? 質問補足: そのようなサンプルコードを持っている方はいませんか?助けてください。私はハードウェアメーカーでソフトウェアには詳しくありません。マスターが詳細なコードを教えてくれると嬉しいです。ありがとうございます! 質問者:ダイシュアンチン - インターンレベル1 最良の回答です 参照を追加してください:Microsoft.VisualBasic(C#コードですが、参照が必要です)。 )
以下の方法でシリアルポートネームをトラバースすると、すべてのシリアルポートを取得します Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer(); foreach(PCの文字列S。 Ports.SerialPortNames)
{ this.comboBox1.Items.Add(s);
}
次に、表示されるシリアルポート名 comNameを使って操作オブジェクトを取得します。 このシリアルポートを開けることができます:
System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName); com。 Open();
その後、データはシリアルポートに書き込めます
シリアルポートへのデータ送信: com。 WriteLine(this.textBox1.Text); バイト配列も書くことができます com。 Write(bArray,0,5); これは、0から始まる5バイトで、バイト配列bArrayを書き込むことを指します
データも受け入れられます: com。 ReadLine() バイトの読み込みも可能です com。 ReadByte();
最後に、閉鎖されました: com。 Close();
また、16進文字列をバイトに変換してください バイト b = Convert.ToByte("1A",16); |