十六进制值未在C#中表示为预期

时间:2013-09-23 15:14:01

标签: c# wireshark hex

我使用SharpPcap在tcpdump中捕获了一个pcap文件。我有以下代码:

 byte[] arr = new byte[] { 55, 53, 55, 53 };

 string hex = BitConverter.ToString(arr).Replace("-",String.Empty);
 //prints the hexvalue 37353735

在wireshark中,这个十六进制值用正确的7575表示(我知道这是正确的,因为这也是我发送的端口)。但是在Visual Studio中,我还没有找到如何将此十六进制值转换为正确的7575.使用

int decAgain = int.Parse(hex, System.Globalization.NumberStyles.HexNumber);

或使用

EndianBitConverter.Big.ToInt16(arr,0);

似乎不起作用。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

var s = Encoding.Default.GetString(arr).Replace("-", string.Empty);

编辑:您试图将字节解析为十六进制,但它们实际上代表字符(例如,查看ASCII表)。