How many bit strings? 
How many bit strings of length $8$ have either exactly two $1$-bit among the first $4$ bits or exactly two $1$-bit among the last $4$ bits?

My solution: 
A bit only contains $0$ and $1$, so $2$ different numbers, i.e., $0$ and $1$. For the first part we have $2^6=64$ ways. Similar for the other way. Hence there exists $2^4=16$ bit strings. Is my answer true?
Update: I mean $2^6+2^6-2^4=112$ bit strings
 A: I lost your logic. By symmetry, amount of strings with exactly 2 ones in the first four (call this group $F$) is identical to the ones with exactly 2 ones in the last four (call this group $L$).
Then your desired amount is $|F| + |L| - |F \cap L|$.
To compute $F$, note that you have exactly $\binom{4}{2} = 6$ ways to pick the location of the ones in the first four, which fixes your picks to be ones and the other two of the first four to be zeros. In other words, this fixes the first four bits, and the rest can be manipulated in $2^4=16$ ways.
Can you finish computing $|F|$? We already said $|L|=|F|$ and can you compute $|F \cap L|$ by a similar technique?
A: Let $A$ be the set of bit strings with exactly two $1$-bit among the first $4$ bits, and $B$ be the set of bit strings with exactly two $1$-bit among the last $4$ bits.
\begin{align}
\#A &= \binom{4}{2} 2^4 = 6\cdot2^4 \\
\#B &= 2^4 \binom{4}{2} = 6\cdot2^4 \\
\#A\cap B &= \binom{4}{2}^2 = 6^2 \\
\#A\cup B &= \#A + \#B - \# A \cap B \\
&= 6 (2^4 \cdot 2 - 6) \\
&= 6 \cdot 26 = 156
\end{align}
A: Among the first $4$ bits, choose $2$ to set them to one and the other two would be set to $0$ and there are $4$ of them with absolute freedom. 
$$\binom{4}{2}\cdot 2^4$$
Similar when we focus on the last $4$ bits. 
When we focus on intersection. We would pick $2$ from the first $4$ and pick $2$ from the last $4$.
So my overall answer would be
$$2\binom42 \cdot 2^4 - \binom42^2$$
Remark: I think your mistake is thinking that you can set arbitary $6$ bits to anything.
A: As a programmer (and a relatively naive mathematician) I immediately thought of reducing the 8-bit string to a hexadecimal string. Two digits, each made of four bits exactly as the problem is divided.
And, out 16 digits (0-F), 6 of them are valid (exactly 2 1-bits) digits.
So, we have 16×6 valid numbers (the first digit can be anything) and out of the the remaining 16×10 numbers, 6×10 of those will also be valid.
Now we have 16×6 + 6×10 = 156
