好的,伙计们,我知道我想做什么,但我不知道它是否已经存在(作为一个函数或理论上)或者如何表达它,所以我需要你的帮助:
- 假设我们有一个二进制数:(msb)
10101110
(lsb) - 从位 X 开始,我想在遇到第一个零位时将所有其他位清零(向左)。
- 尽可能快地做到这一点,所需的操作和 CPU 周期绝对最少
一个例子 :
- 数字 = 10101110,起始位置 = 1(位置 1 的位 = 1)
- position++ - 位置 2 = 1,继续
- position++ - 位置 3 = 1,继续
- position++ - 位置 4 = 0 的位,哎呀……遇到零……现在,一切都必须归零。
因此,我们想象的函数 CROPLEFT(X,POS) 的最终结果,其中 X=10101110 和 POS=1,将返回00001110
。
有任何想法吗?