這篇隨筆最大的意義就是,串口通信的本質,如果為了人機交互方便,在控件textbox中輸入16進制,然后轉換成10機制或者0x0f是要轉換的順便說下,你可能感覺我說的晦澀,但是你實踐下,你給我打個int i=1F
,你就會明白我所說的意思了,所以還是要多實踐,所以人們發明了16進制表示法0x1f,int i =0x1f是沒問題的。
1首先定義一組16進制的數組,Ok這句話本身就有毛病,當然你可以這么寫 int i=0x4f,但是你轉換的時候會比較麻煩,
所以你只能定義一個字符串組string[] str={"1f","2b"};
2開始轉換int result = int.Parse(str , System.Globalization.NumberStyles.AllowHexSpecifier);str必須是字符串
3 對 我們要轉換的是一組數據,在串口中都是一組數據的
foreach(string j in str)
{
int result = int.Parse(j, System.Globalization.NumberStyles.AllowHexSpecifier);
textbox.text+=result.tostring()+" ";//控制下格式
}
寫在最后:其實沒必要這么改的只不過你在和下位機通信的時候,比如接收數據按鈕,你要給下位機一個信號,下位機開始傳輸數據,這個信號時16進制的(顯示應該是16進制的),對16進制的,C#表示很無奈,只能定義成字符串組,字符串組發送是沒有意義的,所以要寫成"0xff"的格式,但這樣在控件中是不能寫成這樣的,所以還要轉換成"0xff"或者轉換成10進制,然后發送OK啦,10進制轉換成二進制開始傳輸,下位機得到數據開始轉換(二進制轉換成16進制);記住10進制的數值的二進制和16進制的數值的二進制是一樣的,他們都是以二進制傳輸的;ascii碼只是的符號,數值只是他的一個符號,沒有數值意義的