一次乘法提取位
我看到在使用了一个有趣的技术,答案到另一个问题,并想好一点理解。 我们获得了一个无符号的64位整数,并且对以下位感兴趣: 1.......2.......3.......4.......5.......6.......7.......8....... 具体来说,我们希望将它们移动到前八位,如下所示: 12345678........................................................ 我们不在乎由指示的位的值.,也不必保留它们。 该溶液是屏蔽掉不需要的位,并且乘以结果0x2040810204081。事实证明,这可以解决问题。 这种方法有多普遍?可以使用这种技术来提取位的任何子集吗?如果不是,如何确定该方法是否适用于特定的一组位? 最后,如何找到正确的(a?)乘法器以提取给定的位?