如何计算每16字节一个字节数组的行数?

时间:2017-11-24 20:23:59

标签: c#

我需要每16个字节计算一个字节数组中的行数。 我使用之前的方法获取行号,将数组转换为字符串。 但是,无论何时将数组转换为字符串,都会使进程大大超载。 所以我想知道,如何每16字节获取一个字节数组中的行数,但没有转换为字符串。 你有什么想法吗?

    string hexString = ByteArrayToHexString(buffer);
    int lineCount = CountLinesHexString(hexString); //Sum 32 in 32 characters (16 Bytes).
    int expectedLength = lineCount * 16;

    public static int CountLinesHexString(string hexStringToCount)
    {
        var regex = new Regex(@".{32}");
        string hexStringLinesOf16 = regex.Replace(hexStringToCount, "$&" + Environment.NewLine);
        int length = hexStringLinesOf16.Length;
        int count = 0;
        for (int i = 0; i < length; i++)
        {
            if (hexStringLinesOf16[i] == '\n') count++;
        }
        return count + 1;
    }

1 个答案:

答案 0 :(得分:1)

因为我理解你的问题所以不需要转换为字符串就这样做:

int bufferLength=buffer.Length;

int lineCount=(bufferLength + 15) / 16;

全部完成

感谢您的评论