I ett digitalt system kan en signal vanligtvis existera i ett av två tillstånd – logisk 1 eller logisk 0. I vissa situationer kan dock ett tredje tillstånd, känt som tri-state condition, uppstå.
Tri-state-tillståndet uppstår när utgången från en digital enhet är frånkopplad eller "flytande". Detta innebär att utsignalen varken aktivt drivs till högt eller lågt tillstånd, utan istället antar ett obestämt värde som kan påverkas av yttre faktorer.
Tri-state-förhållanden används vanligtvis i situationer där flera enheter är anslutna till samma utgångslinje. Genom att köra en enhet till ett tri-tillstånd kan utgångsledningen effektivt "öppnas", vilket gör att en annan enhet kan ta kontroll över linjen utan att orsaka konflikter. Denna funktion är särskilt användbar i bussbaserade system, där många enheter kan dela en gemensam data- eller adresslinje.
Här är en förenklad illustration av ett tillstånd i tre tillstånd:
```
+---------+
| Enhet A |
Utgång ---------->| Tri-State Buffer |--------- Ingång
| Enhet B |
+---------+
```
I det här exemplet är både enhet A och enhet B anslutna till samma utgångsledning, som går genom en tri-state buffert. När Enhet A vill skicka data, driver den aktivt dess utdata till ett högt eller lågt tillstånd. När Enhet B vill skicka data, försätter den dess utdata i ett tri-state-tillstånd, vilket tillåter Enhet A:s data att passera genom bufferten och visas på utmatningslinjen.
Genom att använda tri-state-förhållanden kan flera enheter kommunicera över en delad linje utan att störa varandra. Genom att aktivera och inaktivera tri-state-tillståndet kan enheter effektivt turas om att skicka data utan att behöva någon komplex arbitreringslogik.