繁体   English   中英

C++ 你如何在 N 个整数中找到一个具有最相似位的数字?

[英]C++ how would you find a number with the most similar bits in N integers?

例如,假设我有 3 个整数 18 9 21 这 3 个二进制整数:10010、10001、10101 并说有一个数字 x 我希望该数字基本上是最相似的位,例如每个数字的第一个数字是 1 所以 x将从“1 .....”开始,然后我们有 3 个零,所以它将是“10 ...”,然后我们有一个 0,0 和一个 1。但是我们有比 1 更多的零,所以 x 将是“ 100..”等。

有没有办法做到这一点? 我一直在研究按位运算符,但我不确定该怎么做? 因为按位并不能真正处理这样的三个数字,因为如果它只看到一个零,它只会返回 0

如果我是你,我会简单地添加这些位:想象一下数字:17、9 和 21,让我们将它们写成二进制:

17 : 10001
 9 : 01001
21 : 10101

把它放在一个“表”中并对你的二进制数字求和:

1   0   0   0   1
0   1   0   0   1
1   0   1   0   1

2   1   1   0   3

...然后你说“当我有 0 或 1 时,我输入 '0',当我有 2 或 3 时,我输入 '1'”,然后你会得到:

1   0   0   0   1

=> 你的答案变成“10001”,等于 17。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM