引言:
最近開始學習C#,在寫串口助手小工具時遇到十六進制發送與字符發送之間轉換的問題,
小弟通過網絡各路大神的幫助下,終於實現正確顯示收發,小弟菜鳥一枚,不足之處還望各位批評指正O(∩_∩)O!
其中主要是利用調用ASCIIEncoding類來實現(System.IO.ASCIIEncoding), 下面入正題:
1、將字符轉換為對應的ASCII:
string str = textBox2.Text.Trim(); // 去掉字符串首尾處的空格
char[] charBuf = str.ToArray(); // 將字符串轉換為字符數組
ASCIIEncoding charToASCII = new ASCIIEncoding();
byte[] TxdBuf = new byte[charBuf.Length]; // 定義發送緩沖區;
TxdBuf = charToASCII.GetBytes(charBuf); // 轉換為各字符對應的ASCII
2、將ASCII轉換為對應字符:
byte[] RxdBuf = new byte[len]; // 定義接收緩沖區;
for(int i = 0; i < len; i++)
{
ASCIIEncoding ASCIITochar = new ASCIIEncoding();
char[] ascii = ASCIITochar.GetChars(RxdBuf); // 將接收字節解碼為ASCII字符數組
textBox1.Text += ascii[i];
}