Binary Multiplication Counting Ones Excuse my formatting. 
I have noticed the following but know no way to prove it.
Given the multiplication $y=(2^n-1)\cdot m$, where n,m are positive integers and $m\leq(2^n-1)$. Prove that the count of the number of 1s in the binary representation of y is always n.
Given the multiplication $y=(2^n+1)\cdot m$, where n,m are positive integers and $m<(2^n+1)$. Prove that the count of the number of 1s in the binary representation of y is always even.
 A: For the first of these, consider $(2^n-1)m = 2^nm - m$. The first operation shifts $m$ left by $n$ places, giving
$$m\underbrace{0\ldots 0}_n.$$
The condition on $m$ assures that there are at least as many zeroes now on the right as there are (binary) digits in $m$. Now consider what subtracting $m$ does: first, it turns off the rightmost $1$ bit in the shifted copy of $m$; then, at the right end, in the rightmost $\lceil\log_2 m\rceil$ places, you get the complement of $m$, plus $1$. The remaining bits are all $1$'s:
$$(m\text{ with one $1$-bit turned off})\underbrace{1\dots 1}_{n-\lceil\log_2 m\rceil}(\bar{m}\text{ with one $0$-bit turned on}).$$
Since the number of $1$-bits at the left and right ends adds to $\lceil\log_2 m\rceil$, the total number of $1$-bits is clearly $n$.
The second problem is easier. Start the same way, giving
$$m\underbrace{0\ldots 0}_n.$$
Now adding $n$ simply places another copy of $m$ at the right end:
$$m\underbrace{0\ldots 0}_{n-\lceil\log_2 m\rceil}m,$$
which clearly has an even number of $1$-bits.
