return shiftLeft( -n);
int nBits2 = 32 - nBits; int m = mag[magLen - 1];  for (int i = magLen - 1; i >= nInts + 1; i--) { int next = mag[i - 1];  mag[i] = (m >>> nBits) | (next << nBits2); m = next; }  mag[nInts] >>>= nBits;
    public BigInteger shiftRight(int n)    {        if (n == 0)        {            return this;        }        if (n < 0)        {            return shiftLeft( -n);        }        if (n >= bitLength())        {            return (this.sign < 0 ? valueOf( -1) : BigInteger.ZERO);        }        int[] res = new int[this.magnitude.length];        System.arraycopy(this.magnitude, 0, res, 0, res.length);        return new BigInteger(this.sign, shiftRight(0, res, n));    }