一個二進位數時,取最低位的'1'與所有較低位的'0',捨去以上的位數
在二補數下,lowbit(x)=x&-x
解釋:
lowbit(x)=取x最低位的'1'與所有較低位的'0',捨去以上的位數
=取~x最低位的'0',改成'1',所有較低位的'1'皆改為'0',捨去以上的位數
=~x+1捨去最低位的'1'以上的位數(+1進位達到前者效果)
=x&(~x+1) ( (~x+1) 最低位的'1'以上的位數,和x做&運算被消掉)
=x&-x
By jeffreylin0909