[英]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.