我使用串口接收數據,而我使用下面的代碼將字符串轉換爲十六進制表示,並顯示在richtextbox5:不能我的字符串轉換爲十六進制表示
string hex = "";
foreach (char c in RXstring)
{
uint tmp = c;
hex += String.Format("{0:X2}", (uint)System.Convert.ToInt16(tmp.ToString())) ;
}
richTextBox5.AppendText(hex + " <= Hex");
RXstring是我從串口存儲數據的地方。 問題是:當我發送127(十進制)=> 01111111(二進制)=>是1,他們都是8位輸出是3F儘管其他位,(任何8位的表示開始1是3F),我的代碼怎麼了? 你能幫忙嗎,thx。
你應該把什麼是在未來串口作爲原始字節,不是字符串。你應該確保你使用正確的編碼! –
顯示您的發送代碼,以及更多的接收代碼。 – Shar1er80
你確定'char'是讀取原始數據的正確數據格式嗎?我會用'byte'代替。它設計爲讀取UTF-16字符,請參閱https://msdn.microsoft.com/en-us/library/x9h8tsay.aspx – Robert