如何在 C# 中将大数据位读取为数据字节

  • 本文关键字:数据 读取 字节 c# c#-4.0
  • 更新时间 :
  • 英文 :


我有大量的二进制数据说(11111111000000001010101011111111)。我必须将这些数据划分为数据字节(8 位)。这样就形成了一组字节。

分组为 8 位数据

a 后,我希望前 8 位数据作为第一个输出。然后在读取前 8 位后,我想进一步读取接下来的 8 位,依此类推。

例如,如果我的数据是(11111111000000001010101011111111),那么我想先读取11111111然后00000000然后10101010,最后11111111

如果将数据

存储为字符串,并且希望继续将其用作字符串,则可以执行以下操作:

        string s = "11111111000000001010101011111111";
        List<string> yourStringList = new List<string>();
        for (int i = 0; i < s.Length; i = i + 8)
        {
            yourStringList.Add(s.Substring(i, 8));
        }
        foreach (string st in yourStringList)
        {
            Console.WriteLine(st); //DO WHATEVER YOU NEED WITH YOUR STRING HERE
        }

然后,您可以使用 foreach 循环迭代列表,您将可以访问根据需要格式化的数据。

你可以做这样的事情:

string bits = "1000101010101011111101010101010";
byte[] bytes = new byte[100];
int byteCount = 0;
for (int i = 0; i < bits.Length; i += 8)
{
    bytes[byteCount] = Convert.ToByte(bits.Substring(i, 8), 2);
    byteCount++;
}

如果你想像字节数组一样枚举你的字符串,你可以这样做:

var someBytes = "11111111000000001010101011111111";
foreach (string byteString in EnumerateBytes(someBytes)) 
{ 
}

EnumerateBytes

private static IEnumerable<string> EnumerateBytes(string bytesString)
{
    for (var i = 0; i < bytesString.Length; i = i + 8) { yield return bytesString.Substring(i, 8); }
}

最新更新