I et digitalt system kan et signal typisk eksistere i en af to tilstande – logisk 1 eller logisk 0. I visse situationer kan der dog opstå en tredje tilstand, kendt som tri-state tilstand.
Tri-state-tilstanden opstår, når udgangen af en digital enhed afbrydes eller "flyder". Det betyder, at output hverken aktivt drives til en høj eller lav tilstand, men i stedet antager en ubestemt værdi, der kan påvirkes af eksterne faktorer.
Tri-state betingelser bruges almindeligvis i situationer, hvor flere enheder er forbundet til den samme udgangslinje. Ved at køre en enhed ind i en tri-state, kan udgangslinjen effektivt "åbnes", hvilket giver en anden enhed mulighed for at tage kontrol over linjen uden at forårsage konflikter. Denne funktion er især nyttig i busbaserede systemer, hvor mange enheder kan dele en fælles data- eller adresselinje.
Her er en forenklet illustration af en tri-state tilstand:
```
+---------+
| Enhed A |
Udgang ---------->| Tri-State Buffer |--------- Input
| Enhed B |
+---------+
```
I dette eksempel er både enhed A og enhed B forbundet til den samme udgangslinje, som passerer gennem en tri-state buffer. Når Enhed A ønsker at sende data, driver den aktivt sit output til en høj eller lav tilstand. Når Enhed B ønsker at sende data, sætter den sit output i en tri-state tilstand, hvilket tillader Enhed A's data at passere gennem bufferen og vises på outputlinjen.
Ved at bruge tri-state betingelser kan flere enheder kommunikere over en delt linje uden at forstyrre hinanden. Ved at aktivere og deaktivere tri-state-tilstanden kan enheder effektivt skiftes til at sende data uden behov for kompleks voldgiftslogik.