Try like this:
private static void Unshift(IList<byte> data, int start, int length, int bits)
{
var to = start + length;
if (data.Count < to) to = data.Count;
var last = data[to - 1];
for (var i = to - 1; i >= start; i--)
{
var current = i <= start ? last : data[i - 1];
data[i] = (byte) ((current << (8 - bits)) | (data[i] >> bits));
}
}
Code: C#
And try:
// ...
Unshift(bin, i, 2048, 3);
// ...
Code: C#
Goods_Indonesia.txt was proceed during 0,0524851s.