Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ LeftShift()

BitArray System.Collections.BitArray.LeftShift ( int count)
inline

Definition at line 778 of file BitArray.cs.

779 {
780 if (count <= 0)
781 {
782 if (count < 0)
783 {
784 throw new ArgumentOutOfRangeException("count", count, System.SR.ArgumentOutOfRange_NeedNonNegNum);
785 }
786 _version++;
787 return this;
788 }
789 int num2;
790 if (count < m_length)
791 {
792 int num = m_length - 1 >> 5;
793 num2 = Div32Rem(count, out var remainder);
794 if (remainder == 0)
795 {
796 Array.Copy(m_array, 0, m_array, num2, num + 1 - num2);
797 }
798 else
799 {
800 int num3 = num - num2;
801 while (num3 > 0)
802 {
803 int num4 = m_array[num3] << remainder;
804 uint num5 = (uint)m_array[--num3] >> 32 - remainder;
805 m_array[num] = num4 | (int)num5;
806 num--;
807 }
808 m_array[num] = m_array[num3] << remainder;
809 }
810 }
811 else
812 {
814 }
815 m_array.AsSpan(0, num2).Clear();
816 _version++;
817 return this;
818 }
static int GetInt32ArrayLengthFromBitLength(int n)
Definition BitArray.cs:988
static int Div32Rem(int number, out int remainder)
Definition BitArray.cs:1003
static string ArgumentOutOfRange_NeedNonNegNum
Definition SR.cs:32
Definition SR.cs:7

References System.Collections.BitArray._version, System.SR.ArgumentOutOfRange_NeedNonNegNum, System.Array.Copy(), System.count, System.Collections.BitArray.Div32Rem(), System.Collections.BitArray.GetInt32ArrayLengthFromBitLength(), System.Collections.BitArray.m_array, and System.Collections.BitArray.m_length.