private void AppendOneDigit (int start)
{
if (_ind == _cbuf.Length)
Resize (_ind + 10);
start += _offset;
uint v;
if (start < 0)
v = 0;
else if (start < 8)
v = _val1;
else if (start < 16)
v = _val2;
else if (start < 24)
v = _val3;
else if (start < 32)
v = _val4;
else
v = 0;
v >>= (start & 0x7) << 2;
_cbuf [_ind++] = (char)('0' | v & 0xf);
}