我试图创建一个循环遍历所有不同的整数,其中最后40位中的10个被设置为高,其余设置为低.原因是我有一个包含40个不同值的地图,我想总结所有不同的方式,其中十个这些值可以相乘.(这只是出于好奇,所以它真的是"bitmanip"-loop感兴趣,而不是这样的总和.)
如果我用例如4比特中的2比特来做这个,那么手动设置全部都很容易,
0011 = 3,
0101 = 5,
1001 = 9,
0110 = 6,
1010 = 10,
1100 = 12,
Run Code Online (Sandbox Code Playgroud)
但是在40个中有10个我似乎找不到有效生成这些方法的方法.我试过,从1023(=二进制的1111111111)开始,找到了一个很好的方法来操纵它,但没有成功.我一直在尝试用C++做这件事,但它确实是感兴趣的一般方法(如果有的话).我做了一些谷歌搜索,但没有成功,如果有人有一个很好的链接,那当然也会受到赞赏.:)