我需要用bitshift替换Java中的Math.pow.
for (int i = n - 1; i >= 0; i--)
Math.pow(16, n - i - 1)
Run Code Online (Sandbox Code Playgroud)
其中n是十六进制数的长度.
13304fb意味着n = 7.
它基本上是将十六进制转换为十进制.
现在我需要用Bitshift替换Math.pow.我无法弄清楚,因为n可能会像它想要的一样大.
16^(n - i -1) = 2^(4 * (n - i -1)) 2^x = 1 << x.因此:16^(n-i-1)=1 << (4 * (n -i -1))
(使用^符号表示"对于权力",而不是异或)