我正在研究一个简单的组合部分,发现我需要在给定 4 位 srring 中其他两位的位置的情况下恢复两位的位置。
例如,(0,1) 映射到 (2,3),(0,2) 到 (1,3) 等等,总共有六种组合。
我的解决方案是使用四个嵌套的三元运算符来测试位:
ab is a four bit string, with two bits set.
c = ((((ab & 1) ? (((ab & 2) ? ... ))) : 0)
abc = ab | c
recover the last bit in the same fashion from abc.
我必须澄清,不使用 for 循环,我的目标语言是 C++ 元编程模板。我知道我明确指定了语言,但在我看来它仍然是不可知的
你能想出更好/更聪明的方法吗?谢谢