我需要找出 int n 是否是 2 的幂,我的方法是将 n 转换为十六进制数并检查每一位(0 或 1)。但是,我从未在 Java 中使用过十六进制数字,有人可以帮助我吗?
最佳答案
转换为字符串和使用正则表达式替换都很昂贵。
检查 2 的(正)幂的一个简单方法是检查数字位集。
if (x > 0 && Long.bitCount(x) == 1)
虽然Long.bitCount
看起来很复杂,但JVM可以用单个机器代码指令代替它。
关于java - 在 Java 中将 int 转换为 hex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32542277/