static final char[] digits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z" };
public static String toBinaryString(int paramInt){
return toUnsignedString(paramInt, 1);
}
private static String toUnsignedString(int paramInt1, int paramInt2){
char[] arrayOfChar = new char[32];
int i = 32;
// 此处按二进制 1左移 1 位 为2
int j = 1 << paramInt2;
int k = j - 1;
do {
// paramInt1 & k k=1,偶数 & 1 = 0,奇数 & 1 = 1
arrayOfChar[(--i)] = digits[(paramInt1 & k)];
// >>>无符号右移操作符 无符号为正还是为负 都在高位插入0
paramInt1 >>>= paramInt2;
}while (paramInt1 != 0);
// public String(byte[] bytes,int offset, int length)
// bytes - 要解码为字符的 byte
// offset - 要解码的第一个 byte 的索引
// length - 要解码的 byte 数
// 从第offset的索引开端 解码长度为length
return new String(arrayOfChar, i, 32 - i);
}
static final char[] digits = { "0", "1", "2", "3