Yea.Compression.BitArrayCompress.Take31Bits C# (CSharp) Method

Take31Bits() private method

private Take31Bits ( uint data, int index ) : uint
data uint
index int
return uint
        private uint Take31Bits(uint[] data, int index)
        {
            ulong l2 = 0;
            int off = (index%32);
            int pointer = index >> 5;

            ulong l1 = data[pointer];
            pointer++;
            if (pointer < data.Length)
                l2 = data[pointer];

            ulong l = (l1 << 32) + l2;
            ulong ret = (l >> (33 - off)) & 0x7fffffff;

            return (uint) ret;
        }