different Rightmost Bit
function differentRightmostBit(n, m) { return (n^m) & -(n^m); } function differentRightmostBit(n, m) { return (n ^= m) & -n; } function differentRightmostBit(n, m) { return (n ^ m) & (~(n ^ m) + 1); }