我想知道针对以下问题是否存在高效算法的实现:
给定一个无符号整数U,生成一个掩码(mask),用于选择U中设置的前N位。 (从右到左,从低位到高位)
例如:
f(U=1111, N=2) -> 0011
f(U=1010, N=2) -> 1010
f(U=1110, N=2) -> 0110
f(U=0111, N=2) -> 0011
f(U=0011, N=2) -> 0011
大多数处理器都有“查找第一个置位比特”或类似的指令,因此我认为在最坏情况下可以调用该指令N次,但是有没有更好的方法呢?