用SerialPort控件进行接收串口数据时是二进制。
如何把二进制转换为十六进制显示在文本框中!
还望指点!

解决方案 »

  1.   

     byte[] T = new byte[4];
                T[0] = 100;
                T[1] = 101;
                T[2] = 102;
                T[3] = 103;            MessageBox.Show(BitConverter.ToString(T).Replace('-',' ');
      

  2.   

     string   str="11100011";
     int intValue = Convert.ToInt32(str ,2);
    TextBox1.Text= Convert.ToString(intValue, 16);   
      

  3.   


    byte[] received = {12,34,45,78,90, 0xFF, 0x0, 0xcc};
    string hexString = BitConverter.ToString(received);   //<---
    textBox1.Text = hexString;
    MessageBox.Show( hexString );
      

  4.   

    int intTen = Convert.ToInt32(textBox1.Text.Trim(), 2);
    textBox2.Text = Convert.ToString(intTen, 16);
      

  5.   

    string str ;                    for (int i = 0; i < test.Length; i++)
                        
    {
                            
        str += string.Format("{0:X}", test[i]);
                        
    }
      

  6.   

    问一个简单的问题。
    我的串口现在用this.txtInceptValues.Text = this.txtInceptValues.Text + this.selMonitor.ReadExisting().ToString();
    读出来的数据是十进制的。
    可是单片机下面返回到串口的是二进制的数据。
    这是为什么。
      

  7.   

    string b="1001001111";//二进制
    //二进制转十进制
    int a=Convert.ToInt32(b, 2);
    //使进制转十六进制
    TextBox1.Text=Convert.ToString(a, 16);
      

  8.   


    byte[] bytes = {0,   1,   2,   4,   8,  16,  32,  64, 128, 255 };
    Console.WriteLine( BitConverter.ToString( bytes ) );
    输出:
    00-01-02-04-08-10-20-40-80-FF