# Counting the number of 0's

I am new at digital design and I have a problem. I need to get the number of zeros. There must be 4 inputs and I must use only half-adders. I tried everything I know but I could not solve this. Do you have an idea?

• I have trouble understanding this question, can you be more informative? are you building a digital circuit with 4 inputs, purely made out of half adders? Commented Oct 4, 2013 at 14:21
• Yes, I have 4 inputs and as an output I need to get the number of 0's
– g3d
Commented Oct 4, 2013 at 14:22
• So you can't use inverters or any other gates individually? Commented Oct 4, 2013 at 17:19

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.

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 – 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

## OR gate using 3 NANDs

• It might help to explain how a half-adder (the only allowed component) can be used to invert the input. Commented Oct 4, 2013 at 17:12

It is pretty easy. Invert these inputs and then add them all. This way you will add 1 for every zero and 0 for every 1. Don't forget for the carry.

If the half adder is the only allowed component, you can use it to invert the signals, setting the one of the inputs to 1, because the 1+1=0 and 0+1=1. The carry output will be not used in this case.

• Can you add a schema?
– g3d
Commented Oct 4, 2013 at 13:52
• Now you're just being lazy. Commented Oct 4, 2013 at 14:12
• It is not about being lazy,I didnt get it.
– g3d
Commented Oct 4, 2013 at 14:26
• It might help to explain how a half-adder (the only allowed component) can be used to invert the input. Commented Oct 4, 2013 at 17:12
• @g3d - then counts the 1s and subtract from 15 Commented Oct 4, 2013 at 17:12