【发布时间】:2012-09-19 13:23:41
【问题描述】:
我是一个白手起家的程序员,因此我对位和字节以及十六进制值了解不多。
我使用的其中一个库从远程服务接收数据作为字节数组。我找到了一种转换这个字节数组数据的方法:
public string ByteArrayToHexString(byte[] buf)
{
if (buf == null) return "";
StringBuilder sb = new StringBuilder(buf.Length * 2 + 2);
for (int i = 0; i < buf.Length; i++)
{
sb.Append(buf[i].ToString("x2"));
}
return sb.ToString();
}
使用这种方法,我得到如下字符串:
0031
或
0022
或
002d
这些实际值是由服务发送的还是需要进一步转换?我应该怎么做才能得到实际值?
【问题讨论】:
-
What should I do to get the actual values?- 我们不知道。这些代表什么? -
所需的预期结果是什么?
-
学习的好时机。
-
鉴于你的方法被称为 ByteArrayToHexString 它看起来像是它的工作对我来说
-
正如@Oded 所说,我们不可能知道任意
byteArray中的bytes 代表什么以及它们是否正确。无论哪种方式,将字节转换为十六进制文字字符串都没有多大帮助。 Web 方法的签名是什么,您希望它做什么?byte[]可以是任何其他类型的二进制序列化,也可以是其他类型。