Als ich den Quellcode von Java Version 1.7.0_09 gelesen habe, fand ich, dass die Realisierung der toString-Methode der Integer-Klasse verwendet negative int, um die Mod zu berechnen Operation, hat das einen Sinn? Code ist wie folgt:Warum Negativ Int für Mod-Operation in ToString-Methode der Integer-Klasse in 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));
}
Vielen Dank! Ich denke, das ist was ich will! – Judking