# Why can computer circuits recognise only two states?

Computers can only understand binary (that is 0s or 1s). I want to know Is there any way that computers can understand more than 2 states. I know that It is much harder to build components that use more than two states/levels/whatever. Of course If we have more than two states we would be able to hold more data per bit, just like our decimal number system can hold far more data in a single digit.

• Quantum computing is a field which is gaining more and more attention. The idea is to use a qubit (quantum bit), rather than a binary bit. A qubit can take on several states at one time, but the technology still has a long way to go. Here's some information about it: en.m.wikipedia.org/wiki/Quantum_computer
– wgrenard
Apr 14, 2014 at 22:49
• I would think that the answer to your question is largely, Because we design them that way.
– Kyle Kanos
Apr 15, 2014 at 1:13
• I think this question appears to be off-topic because it is about computer science. Apr 15, 2014 at 5:35
• related, if not duplicate: Why do computers only use 0 and 1? Another related on StackOverflow: Why binary and not ternary computing? Apr 23, 2014 at 20:02
• It's not off-topic, it's an engineering question, or perhaps a CS question with an engineering answer: economics. I was taught in Computer Organization 101 that binary is simply the most efficient way to use silicon. Legend has it that the Russians were experimenting with ternary computers in the 1960s. Apr 23, 2014 at 23:18

The main reason is that it's simply a lot easier to make circuitry that is always in one of two states than to have it support in-between states. The extra complexity, cost, and speed penalty for compressing more states into a single signal outweigh any advantage gained by the compression.

One important convenience of using only two states is that any signal can be arbitrarily amplified about the middle. This results in the amplifier output slamming to one extreme or the other. The gain can therefore vary widely, and can be made arbitrarily large.

Imagine a human analog of this. If you have a light switch on the wall that is either on or off, you can whack it to put it in the other state. It doesn't matter if you are still pushing on it a bit when it gets there, since it has a mechanical limit built in. You can push on it just enough to make it switch, or a lot more as long a you don't physically break it. Now imagine if the switch had 3 or more states and you wanted to set it to one of the in-between states. You'd have to be a lot more careful to apply just the right amount of force or travel. Too much and you end up in the next state. You can't just do the simple and fast thing of whacking it anymore.

A similar complexity is required to set the level of a signal to a in-between state. This costs parts, power, and takes time. Then you have more complexity again to interpret the signal when you want to use its value. This could be done, but is not worth it.

Another issue is that keeping a signal at a in-between level would likely take more power. With a high or low signal, you can think of the signal being connected to power or ground thru one of two switches. These don't take power to keep fully on or fully off, but any circuit to keep a signal in-between doesn't have that benefit and would very likely require constant standby power to keep it that way.

There are actually cases where more than two levels are used today to encode digital data. There are some bulk flash memories that work on this principle. Data is stored in piles of charge. These piles can have more than 2 sizes. It does take extra complexity to decode the size of the piles when a read is performed, but in the case of large flash memories that extra complexity is spent only a few times in read circuitry while the compression savings is applied to many millions of bits, so the tradeoff is worth it.

Actually, there are many computers that use many states per bit since the turn of the century. They are called analog computers. Actually, the slide rule is considered an analog computer and it's been around for centuries. Just search the internet for information.

• +1 because it's not a laugh, it's true! "Computer" was a job title once upon a time. Apr 24, 2014 at 9:16

A brief but helpful description of whether it is possible to implement ternary, decimal, or other base-$n$ computing schemes can be found halfway through this article by Mark Chu-Carroll.

More importantly, he explains why there is virtually no advantage conferred by using larger $n$ in base-$n$ representations. The reasoning that using base-$n$ for large $n$ allows more data per bit is technically true, but it doesn't actually help in practice. Similarly, there is an obvious bijection between English language sentences and visual symbols, which one could naively argue would constitute a form of information compression (since each sentence could be compressed down to a single symbol), but you're hurt by the fact that you have to carry around a gigantic look-up table, so it's sort of cheating.

Of course If we have more than two states we would be able to hold more data per bit, ...

But only because you are redefining the meaning of "bit". According to Information Theory you are not changing the information content but merely the unit you use to measure it. In fact, you change it from Bit to Ban, or about 3.32 bits :)

The cost of circuitry to manage and discern three active states would in most cases be more than double that required to handle two. Consider how a two-state inverter is designed so that one can pass a high or low through any even number of inverters and, after some delay, end up with the original logic level. Now try to design one that can pass through a one-of-three voltage selection which can be reliably conveyed similarly. If power dissipation weren't an issue, there are some ways it could be accomplished somewhat reasonably, but two-state logic is in most cases going to be vastly easier to design around.

One common example of digital circuitry which uses more than two states per "bit" is flash memory, specifically MLC (Multi-Level-Cell) flash. To reduce cost, this flash memory uses more than two states in a memory cell to represent more than one binary bit of information. This subverts one of the major issues of non-binary digital logic, that is that a transistor that is between off and saturation draws additional power (as noted by Vememo), since the flash cells do not draw power when idle.

The down side of MLC flash, vs SLC (Single-Level-Cell) flash, is much reduced endurance, in terms of number of possible erase cycles before then cells degrade and can no longer be correctly programmed.

I was wondering about this myself a while ago. There are many possible answers, but perhaps the most practical reason is power consumption. A typical transistor used in a modern integrated circuit dissipates nearly zero power when it's in either logical 0 or 1 state. (Either the collector-emitter voltage is nearly zero, or the collector current is nearly zero.)

Thus, in a contemporary chip, we can say that a transistor will only dissipate considerable amounts of power when it is in the process of changing between the two states, and consumes very low power when it is holding a particular state.

Imagine if there were more than two possible states (other values "inbetween"), transistors would consume orders of magnitude more power even when the system is doing nothing, thus rendering the thing economically unfeasible. This is (one of the reasons) why the vast majority of our digital circuits are binary.

ENIAC was base 10, so not only is it possible to use bases other than 2, base 10 was used first.

According to "50 Years of Army Computing: From ENIAC to MSRC", EDVAC was base 8 and ORDVAC I and II were base 16.

• I don't think this answers the question. The vacuum tubes, diodes and relays used in the ENIAC, EDVAC and ORDVAC circuits really only had two states, on and off. As described in the Wikipedia article on ENIAC the registers on ENIAC were "decimal" in the sense that they stored a decimal digit encoded by which of 10 binary flip-flops was in the "1" state while all the others were in the "0" state. Digital designers still use this technique. They typically call it "one-hot encoding". Apr 23, 2014 at 18:05
• I agree with what you're saying. I guess it depends how you interpret "understand" in the question.
– DavePhD
Apr 23, 2014 at 18:38