private static void AppendNumericBytes(string content, BitVector bits)
{
var length = content.Length;
var i = 0;
while (i < length)
{
var num1 = content[i] - '0';
if (i + 2 < length)
{
// Encode three numeric letters in ten bits.
var num2 = content[i + 1] - '0';
var num3 = content[i + 2] - '0';
bits.AppendBits(num1 * 100 + num2 * 10 + num3, 10);
i += 3;
}
else if (i + 1 < length)
{
// Encode two numeric letters in seven bits.
var num2 = content[i + 1] - '0';
bits.AppendBits(num1 * 10 + num2, 7);
i += 2;
}
else
{
// Encode one numeric letter in four bits.
bits.AppendBits(num1, 4);
i++;
}
}
}