あんまり使えない気もするけど、
n & (-n)で、一番小さい立ってるビットのみの値が帰る。
たとえば、0x42 なら 0x2

でも、どこぞの馬鹿がこれで特許とってるって話を昔聞いたw