khi tôi đọc mã nguồn của phiên bản java 1.7.0_09, tôi thấy rằng việc thực hiện phương thức toString của lớp Integer sử dụng int âm để tính toán mod hoạt động, có ý nghĩa gì không? mã như sau:tại sao sử dụng int âm cho hoạt động mod trong phương thức toString của lớp Integer trong java src
public static String toString(int i, int radix) {
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
/* Use the faster version */
if (radix == 10) {
return toString(i);
}
char buf[] = new char[33];
boolean negative = (i < 0);
int charPos = 32;
if (!negative) {
i = -i; //***** change i to negative
}
while (i <= -radix) {
buf[charPos--] = digits[-(i % radix)]; //***** change back to positive after
//***** mod operation
i = i/radix;
}
buf[charPos] = digits[-i];
if (negative) {
buf[--charPos] = '-';
}
return new String(buf, charPos, (33 - charPos));
}
Thx rất nhiều! Tôi nghĩ rằng đây là những gì tôi muốn! – Judking