如何在给定的数字集中找到位置的最主要位?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在给定的数字集中找到位置的最主要位?相关的知识,希望对你有一定的参考价值。

例:

11:  01011  
18:  10010  
 2:  00010    

Ans: 00010

在零位(最右边),我的0比1更多。因此,我的答案应为0.同样,在第一位,我有1作为显性位,依此类推。

有没有办法使用基本的按位运算符找到它或者我应该使用任何其他可以实现此结果的位掩码?我正在寻找一个O(1)解决方案。

答案

如果你有三个输入x,y,z,你可以使用

 (x & y) | (z & (x | y))

对于任何其他恒定数量的输入,可能会找到类似的公式。

以上是关于如何在给定的数字集中找到位置的最主要位?的主要内容,如果未能解决你的问题,请参考以下文章

找到满足某些条件的 16 位数字的最优雅方法是啥?

TSQL - 如何从一个结果集中的多个表中加入 1..*?

给定一个目标总和和一组整数,找到与该目标相加的最接近的数字子集

如何使用 PIG 在给定数据集中找到最大年份?

JavaScript笔试题(js高级代码片段)

如何将 C++ 位集中的位范围子集转换为数字? [复制]