Counting the number of 0's
Phase 1, invert all inputs. 


That way we can identify zeros as logic 1. and Logic 1 can be quantified easily with a half adder as oppose to logic 0.


Phase 2, Combine half-adders to make a 4-bit adder.


Half-Adder can add 2-bits
Full-Adder can add 3-bits
Hald-Adders + Full-Adders + Ripple Carry can add n-bits




What Half Adder and Full Adder look like




How to build an inverter with a half-adder:


keep one of the exclusive-or inputs high. Then the exclusive-or gate acts like an inverter








simulate this circuit &ndash; Schematic created using CircuitLab

NOT gate using a single Half-Adder



How to build an or gate with only half-adders, in case you need it to build the full-adder and n-bit adder:

First, build a nand gate using a half adder.
Second, build an or gate from nand gates.


You can do it by attaching the input of the not gate to the and gate.








simulate this circuit

NAND gate using 2 half-adders



OR gate using 3 NANDs