【问题标题】:C# read text file with HEX value and show it as byte []?C# 读取具有 HEX 值的文本文件并将其显示为字节 []?
【发布时间】:2018-08-28 13:22:08
【问题描述】:

我想要一个只有十六进制值的文本文件 这是文本文件:

0xD2 0x00 0xD3 0x04 0xD4 0x77 0x21 0x21 0x3F 0x21 0x21 0x20 0x21 0x23 0x20 0x21 0x3F 0x20 0x21 0x23 0x20 0x21 0x21 0x3F 0x21 0x21

并将其保存为 byte[] 数组

所以字节数组将是: 字节[] 文件 ={0xD1, 0X00, ........ ,0x21 ,0x21} 我可以这样做吗?

  • 如果需要,我可以更改文件 - 删除空格、0x ...

谢谢,

【问题讨论】:

  • 如果你去掉空格和 0x,任务会变得更容易(读取成对的字符并用它们做简单的数学运算)

标签: c# file io byte


【解决方案1】:

怎么样:

var numbersAsString = "0xD2 0x00 0xD3"; // shortend your example a bit
var numbersAsInts = numbersAsString.Split(' ').Select(s => Convert.ToByte(s, 16)).ToArray();
Console.WriteLine(string.Join(",", numbersAsInts.Select(x => x.ToString()).ToArray()))

【讨论】:

  • Convert.ToByte(...) 处理 0x 吗?
  • @someone: Like a charm 但也可以提供IFormatProvider
  • 我在哪里读取文件,文件中的文本应该是什么?
  • 你可以使用类似File.ReadAllText的东西。
  • 不好 - 因为当我阅读文件时,这就是我得到的; A2 应该是 162(decimal) ,但在 File.ReadAllText 然后是 byte[] array = Encoding.ASCII.GetBytes(input);我得到 65 50 。如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-19
  • 2011-11-07
相关资源
最近更新 更多