我有大量的二进制数据说(11111111000000001010101011111111
)。我必须将这些数据划分为数据字节(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); }
}