读取二进制文件并转换为十六进制后,长度为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)个字符串
答案 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);
}