如何使用以下命令获取十六进制类型数据

时间:2014-03-18 03:09:18

标签: c# hex getstring

我想使用getstring获取十六进制类型的数据,但我不太了解C#。如何修改代码来实现该功能?我有一个设备继续通过套接字将十六进制数据发送到我的PC。我发现下面的套接字程序接收十六进制类型数据,但后来接收数据的显示完全是凌乱的代码,没有任何意义。我不知道我是否使用了错误的数据类型或其他问题。任何人都可以帮我解决它,非常感谢!

我根据建议修改了我的程序,它根据我的需要给了我一些字符串,但后来打印出一系列000000,它永远不会停止。为什么会这样?

 public void ReceiveMsg()
    {
        while (true)
        {
            byte[] data = new byte[1024];
            int recv = newclient.Receive(data);
            Encoding.UTF8.GetString(data, 0, recv);
            string hexString = BitConverter.ToString(data).Replace("-", string.Empty);
            //string stringdata = Encoding.UTF8.GetString(data, 0, recv);
            showMsg(hexString + "\r\n");

        }
    }

1 个答案:

答案 0 :(得分:0)

此语句会将您的字节数组转换为字符串。

string stringdata = Encoding.UTF8.GetString(data, 0, recv);

以下代码将字节数组转换为十六进制字符串

StringBuilder hexString = new StringBuilder(data.Length * 2);
foreach (byte b in data)
   hexString.AppendFormat("{0:x2}", b);

或者您可以使用

string hexString = BitConverter.ToString(data);