位运算:Brian Kernighan算法

Brian Kernighan算法可以用于清除二进制数中最右侧的1。Brian Kernighan算法的做法是先将当前数减一,然后在与当前数进行按位与运算。

x=x&(x-1)

举个例子,20的二进制表示为10100,其最右侧的1在第三位上。20-1=19,19的二进制表示为10011,10100&10011=10000。可以看到,Brian Kernighan算法可以二进制数将最右侧的1清除。

你可能感兴趣的:(数据结构与算法,算法)