すまん、974は読み違えしてた。
X-1は最も低いオンビットとそれより下位のビットを反転させるので、XOR取ると反転したビットの数が取れる
右端1個目を0とするから1を引く
各数値の計算途中のビット列を書き出してみるとわかると思う