Si prega di notare che C opera ad un livello molto più alto di astrazione rispetto alle porte logiche, quindi effettuare tali confronti potrebbe portare a confusioni. Detto questo, il più vicino si potrebbe arrivare ad una demultiplatore (Comincerò con che dal momento che è più semplice) è il operatore di spostamento a sinistra:
a << b
Questa espressione, assumendo che a
e b
sono int
espressioni , produrrà un nuovo int
i cui bit sono i bit di a
spostati a sinistra b
volte. Ad esempio, se a
è 0100011011010110
e è 3, il risultato sarà 0011011010110000
. Ora, se a
è 0 o 1 e si interpreta il numero intero risultante come un bus, ciò corrisponde a un demultiplexer.
Un multiplexer/selettore può essere attuata dall'operatore shift verso destra>>
, che sposta i bit verso destra. Tuttavia, il risultato deve essere &
'cato con 1 per chiarire eventuali altri bit diversi da quello eri interessato:
(c >> b) & 1
Questo seleziona efficacemente il bit di indice b
(partendo dal bit meno significativo) dal c
.
fonte
2016-01-17 05:44:38
In che modo esattamente ti aspetti che un operatore MUX funzioni? Come vorresti fornire i suoi input? – Dmitri
@Dmitri, vorrei fare una funzione in cui passerò i suoi input. –