java - 在 Java 中将 int 转换为 hex

标签 java integer hex

我需要找出 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/

相关文章:

java - 使用递归查找给定数组中的最小值

c - unsigned long long 十六进制格式打印

Javascript:更改 CSS 文件中定义的颜色值

java - 数千个主题的高性能 DefaultMessageListenerContainer 配置

java - 如何在 application.yml 中设置与 postgresql 连接的初始大小

mysql - 选择并计算列

objective-c - 如何暂停 objective-c 不到一秒的时间

java - 如何防止代码打印负输出?

c - printf() 格式化为十六进制

java - 系统化的 getter 和 setter 但需要避免死锁