我正在尝试制作一个循环,遍历所有不同的整数,其中最后40位中恰好有10个高位和其余低位。原因是我有一个包含40个不同值的映射表,并且我想要将这些值中的任意10个相乘的所有不同方式求和。(这只是出于好奇心,所以真正重要的是“ bitmanip”循环,而不是总和本身。)
如果我要用例如4位中的2位来做到这一点,那么手动设置所有内容就很容易。
如果我要用例如4位中的2位来做到这一点,那么手动设置所有内容就很容易。
0011 = 3,
0101 = 5,
1001 = 9,
0110 = 6,
1010 = 10,
1100 = 12,
但是在40个数字中,我无法找到一种有效的方法来生成10个数字。我尝试从1023(=二进制中的1111111111)开始,寻找一种好的操作方式,但是没有成功。我一直在尝试用C++来完成这个任务,但实际上我更关心的是通用的方法(如果有的话)。我进行了一些谷歌搜索,但效果不佳,如果有人有好的链接,当然会很感激。