gpt4 book ai didi

java - java.lang.Integer内部代码中的一个问题

转载 作者:搜寻专家 更新时间:2023-11-01 01:19:38 25 4
gpt4 key购买 nike

查看方法代码时:

Integer.toHexString

我找到了以下代码:

public static String toHexString(int i) {
return toUnsignedString(i, 4);
}

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));
}

问题是,在 toUnsignedString 中,为什么我们创建一个 32 个字符的 char arr?

最佳答案

32 个字符是用二进制表示 int 所需的数量(base-2,shift 为 1,由 toBinaryString 使用) .

它的大小可以精确调整,但我想尝试这种优化从来没有商业意义。

关于java - java.lang.Integer内部代码中的一个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com