javaバージョン1.7.0_09のソースコードを読むと、IntegerクラスのtoStringメソッドの実装で負のintを使用してmodを計算することがわかりました操作、それには何か意味がありますか?次のようにコードは次のとおりです。java srcのIntegerクラスのtoStringメソッドで負のintを使用する理由
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たくさん!私はこれが私が望むものだと思う! – Judking