二进制字符串长度mod 64

时间:2019-01-17 03:06:55

标签: c# winforms

读取二进制文件并转换为十六进制后,长度为16384,需要对64进行调制以将16384分为256个字符串。

我尝试使用列表进行存储,但是列表一次添加一次,这可能是我的循环出错了。

list<string)test = new list<string>test();
foreach(byte b in hexArray)
{
   hexstring += string.Format("{0:x2}",b);
   int length = hexstring.length /64;  //total length will have 16384

    if(length == 64)
    {
       for(int ix= 0; ix <= length; ix++)
       {
            test.add(hexstring);
       }
    }
}

预期结果:

abe12112121212 .....(64)

21212212sadada .....(64)

总共将有(256)个字符串

1 个答案:

答案 0 :(得分:1)

您要无限追加hexstring。我认为您应该在检查长度后将hexstring设置为null或为空,并且也不需要for循环将字符串添加到List中。

foreach (byte b in hexArray) {
    // If you want to print 64 characters per each hexstring
    // you can simply check length > 0 && length % 64 == 0
    if (hexstring.Length > 0 && (hexstring.Length % 64) == 0) {
        test.Add(hexstring);
        hexstring = string.Empty;
    }
}

// Print rest of hexstring (if exists)
if (hexstring.Length > 0) {
    test.Add(hexstring);
}