以下では NN を二進数として扱うこととします。

N=1010N = 1010 の時について考えます。

XOR の演算では各桁を独立に考えますが、足し算の場合は繰り上がりがあります。 X+YX + Y で繰り上がりのある桁がある場合、X+Y=XYX + Y = X \oplus Y を満たすことはできません。 そのため、X,YX, Y 両方において 11 である桁は存在しません。 よって、NN において 00 である桁は X,YX, Y どちらも 00 である必要があります。 対して、NN において 11 である桁は、X,YX, Y どちらかが 1,1, 一方が 00 である必要があります。 これが 22 通りで、各桁を独立に考えることができるため、NN において 11 である桁の数が pp 個存在する場合、 X+Y=XYX + Y = X \oplus Y を満たす非負整数 (X,Y)(X, Y) の組は 2p2 ^ p 組存在します。 ただし、この中には (N,0),(0,N)(N, 0), (0, N) もしくは (0,0)(0, 0) が含まれ、条件を満たさないこれらを除く必要があります。