System.Xml.Xsl.XPathConvert.BigInteger.ShiftRight C# (CSharp) Method

ShiftRight() public method

public ShiftRight ( int cbit ) : void
cbit int
return void
            public void ShiftRight(int cbit) {
                AssertValid();
                Debug.Assert(cbit >= 0);

                int idx;
                int cu = cbit >> 5;
                cbit &= 0x001F;

                if (cu > 0) {
                    ShiftUsRight(cu);
                }

                if (0 == cbit || 0 == length) {
                    AssertValid();
                    return;
                }

                for (idx = 0; ; ) {
                    digits[idx] >>= cbit;
                    if (++idx >= length) {
                        // Last one.
                        if (0 == digits[idx - 1]) {
                            length--;
                        }
                        break;
                    }
                    digits[idx - 1] |= digits[idx] << (32 - cbit);
                }
                AssertValid();
            }