java - 如何在Java中找到整数中2的指数?
问题描述
我想找到任何整数包含的 2 的幂。像 12 = 2*2*3所以答案应该是2,28 = 2*2*7所以答案应该是2等等。
int powerOf2InNumber = (int)Math.floor(Math.log(number) / Math.log(2));
我尝试了上面的代码,但在 28、26、10 等情况下,我得到了错误的答案。
解决方案
有一个方便的内置功能,
int powersOf2 = Integer.numberOfTrailingZeros(number);
推荐阅读
- angular - 下拉列表中的文本应该不同于值
- hadoop - hadoop - 使用 bzip 压缩镶木地板文件
- google-cloud-dataflow - Apache Beam:在启动 ImportTransform Dataflow 模板之前等待 AvroIO 写入步骤完成
- mongodb - 带有 mongodb 和 rabbitmq 服务的 Gradle 模板
- angular - 角度单元测试销毁服务
- typescript - prettier 不强调 .ts 文件的警告
- kotlin - 以类型安全且符合人体工程学的方式访问通用异构集合
- idris - %inline 对 Idris 的真正作用是什么?以及何时使用它?
- javascript - 粘性/固定导航栏,滚动时 BG 透明到实体(无引导程序)
- c - 使用 C 在 Gtk 中创建小部件列表