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();
}