程序如下,请帮我逐步写下一句话,好吗?
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
    buf[--charPos] = digits[i & mask];
    i >>>= shift;
} while (i != 0); return new String(buf, charPos, (32 - charPos));
    }