【发布时间】:2016-07-17 16:42:43
【问题描述】:
我有一个从网络读取字节的程序。有时,这些字节是十进制或十六进制形式的整数的字符串表示形式。
通常,我会用类似的东西来解析它
var s=Encoding.ASCII.GetString(p.GetBuffer(),0,(int)p.Length);
int.TryParse(s, out number);
我觉得这很浪费,因为它必须为字符串分配内存而不需要它。
有没有更好的方法可以在 c# 中做到这一点?
更新
我看到了一些使用BitConverter 类的建议。这不是我需要的。 BitConverter 会将 int(4 字节)的二进制表示转换为 int 类型,但由于 int 是 ascii 格式,此处不适用。
【问题讨论】:
-
虽然您可以通过硬编码 ASCII 数字与其原始字节等效值之间的映射来手动解析字节,但除非您有令人信服的理由相信这是性能瓶颈,否则这可能不值得。
-
您是否尝试过基本的 .NET 支持来将字节数组转换为另一种类型? msdn.microsoft.com/en-us/library/bb384066.aspx
标签: c# parsing binary bytearray