| Full adder | |||||||||||||
| In order to perform true addition, we need to use the carry from the previous result | |||||||||||||
| Full adder | |||||||||||||
| Data inputs: x, y, cin (carry in) | |||||||||||||
| Data outputs: s, cout (carry out) | |||||||||||||
| Truth table | Boolean expressions | ||||||||||||
| x | y | cin | s | cout | |||||||||
| 0 | 0 | 0 | 0 | 0 | s = \x\ycin + \xy\cin | ||||||||
| 0 | 0 | 1 | 1 | 0 | + x\y\cin + xycin | ||||||||
| 0 | 1 | 0 | 1 | 0 | |||||||||
| 0 | 1 | 1 | 0 | 1 | cout = \xycin + x\ycin | ||||||||
| 1 | 0 | 0 | 1 | 0 | + xy\cin + xycin | ||||||||
| 1 | 0 | 1 | 0 | 1 | |||||||||
| 1 | 1 | 0 | 0 | 1 | |||||||||
| 1 | 1 | 1 | 1 | 1 | |||||||||