java - 哪个数字在二进制表示中有更多的尾随零

标签 java binary

给定两个数字 A 和 B,我想知道使用 Java 确定其中哪一个具有更多尾随零(以二进制表示)的最有效方法是什么。

我可以分别确定它们两个的尾随零的数量,但我不知道这是否是最好的方法,或者是否有一些二进制魔法可以做得更好。

备注 : 数字可能非常大,我需要使用 BigInteger .

最佳答案

因为您正在使用 BigInteger ,您可以使用 BigInteger#getLowestSetBit 确定最右边一位右侧的零位数量。

System.out.println(BigInteger.valueOf(32).getLowestSetBit());

输出:
5

注意:此方法返回 -1如果数字不包含一位(即 0 )。

关于java - 哪个数字在二进制表示中有更多的尾随零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62282425/

相关文章:

java - 如何为 swagger 2.8.0 做友好的基本 url

java - 清除 Android 3.x 上的图案锁定

c++ - 2s补码是一种存储负数的方法吗?

c - 如何在C中将二进制数转换为两位十进制数

c# - 在java中读取c#二进制文件

java - 如何根据区域设置获取带有时区的数据时间模式?

java - 增加 JTextField 组件的高度

java - HSQL 中的 H2 RUNSCRIPT 等效项

c - 如何将字符串转换为二进制?

node.js - Node.js 中的 Memcache 返回大小不同的对象