Trinary based computer

Hello all! I have been discussing trinary computing with all of my friends and we came to the conclusion that using the polarity of electricity would make sense. To understand this you need to understand the three states that it can read -1,0,1. Both of my friends consider this a good concept but none of us know how to execute this. I know that the transistor is a cell in the beating heart of the computer, but it seems to me like you would need an entirely new system to use this type of concept in computers.

That's good, but not new. It's called balanced ternary. The part you are looking to make is often called a trit.

thank you for this info I did not know of this I will try and research it.

also one other question due to more outputs of data would this theoretically be faster.

Check out circuitverse
It will allow you to work with logic gates and a few other widgets to build things like this and only costs time.
A bistable vibrator, representing a bit, is capable of holding one of two positions, you need to make a tristable vibrator of some flavor.
I've done it as have many others, but you should try to figure it out on your own.

I suggest that you build a 4-bit computer before you dig into this. There are other things you'll need to understand first.


It is very useful that Arduino outputs can be tristate: HIGH, LOW and high impedance.

Did you also consider what logic and arithmetic operations are or should be possible with such values?

All = both? You do need to get out more!!

1 Like

Would jumping from 1 to -1 be as fast as jumping from 1 to 0? Would the signal propagation delay be the same? How do the signal components work with the inverted voltage?

You need to invent components that will work as you want them, not components based on the binary off-on scheme. Think off, half on and full on.

I think it would be hard to "prove" it's any better unless you are a microcontroller manufacturer. It would probably require more switching circuits and it would probably consume more power.

The internal operation of all (1) current microprocessors and computers is binary so you'd have to "invent" a new kind of machine language and then write a complier if you wanted to use a higher-level language (like C++, etc.)

...It's pretty common for people to make a resistor-ladder and switches so that different analog voltages represent multiple different states. Thay way, they can use one analog input instead of multiple digital inputs. It can help of you're running-out of I/0 pins. But personally, I kinda' hate using analog when you really want digital.

Or, there could be other applications where you want different behavior depending on the analog voltage.

(1) There are quantum computers (which I don't full understand) and the theory is that they will eventually out-perform current computers. But as-of today the fastest traditional computers are faster. And from my limited understanding, the input/output is still binary.

There is a pretty-common 3-state situation
where you have a double-throw center-off switch. The normal solution is to use 2-inputs so you can have 01, 00, or 10, but you'll never see 11. Or you can wire it differently so center-off has both inputs pulled-up and in that case you can get 11 but you can never get 00.

And, there are "tri-state" outputs, but this has a different concept and a different purpose. The 3rd-state is "high impedance" and undefined. You can "trick" the Arduino into doing that but switching an output-pin to an input. The purpose is so you can connect multiple outputs together, like a RAM and EEPROM chip... One chip is put into the high-impedance state which effectively takes it out of the circuit while you read the other chip. (Although it's more common to have open-collector or open-drain outputs... These can be pulled-up and then "or'd" together.)

So, transistors are out altogether because we are talking about operating a digital switch between the saturation region and cutoff region...

Not so! Transistors have a linear conduction region that could be used. Think audio amplification. Properly designed you can three possible outcomes.

How does this magic work for the transistor to output off and on WITHOUT outputting the half-on state? How can you go from logic -1 to logic 1 without outputting logic 0? In other words, how do you represent 3 states with one of them being an intermediate state between the other two?

And that is why we do not have trinary computer systems. The original poster and friends need to develop a trinary "AND" gate before going any further in their discussion. That is the basis of all digital computer design.

What would a not gate look like? Or would there be one?

all logic gates existed before computers and have not changed.

A balanced ternary trit has a single output (+V, GND, -V)

Overall the logic in not tough. Just define trilogic tables and abandon certain precepts


-1 -1 -1
-1 0 0
-1 1 0
0 -1 0
0 0 0
0 1 0
1 -1 0
1 0 0
1 1 1


-1 0
0 -1
1 0


-1 0
0 1
1 0


-1 -1 -1
-1 0 -1
-1 1 -1
0 -1 -1
0 0 0
0 1 -1
1 -1 -1
1 0 -1
1 1 -1


-1 -1 1
-1 0 1
-1 1 1
0 -1 1
0 0 0
0 1 1
1 -1 1
1 0 1
1 1 1

It also requires 2 XORs and two more ANDs, and for all gates a not version.

I think we are conflating binary/trinary arithmetic and Boolean algebra. Logic gates will remain the same.