From what I understand from my lecture notes, overflow occurs when:
- $C_{in} \neq C_{out}$
- Change in sign
For $C_{in} \neq C_{out}$: suppose $111+111=1110=110$. In this case $C_{in}=0, C_{out}=1$, but consider a carry in then: $111+111+1=1111=111$ which according my the rules 1 above, is NOT overflow… so I suppose my understanding is wrong? If so how will I determine overflow systematically?
UPDATE
For those who are not sure what $C_{in}, C_{out}$ means and how to add/subtract binary, I hope the below working will help
Best Answer
I think you have to specify, what your sign bit is (I assume the left most) and then treat every addition separately $$ \begin{eqnarray*} 0\_111&+&0\_111&+&0\_001 & = 1\_110 &+&0\_001&= 1\_111 \\ 7&+&7&+&1&\neq_{a}-6&+&1&\neq_b-7\\ \end{eqnarray*} $$ to get $a.$ your overflow, followed by $b.$ nonsense.