Diese sehen für mich wie ziemlich einfache Übersetzungen der Syntax aus. Zum Beispiel in C, XOR
ist ^
, AND
ist &
und NOT
ist ~
, so die erste Schaltung herauskommen würde wie:
Y = (A & ~B)^C;
Der große Unterschied ist, dass C (wie die meisten normalen Programmiersprachen) nicht einen Datentyp für ein einzelnes Bit haben, so würde dies wirklich ein Minimum von 8 Kopien der Schaltung parallel darstellen (dh die Datentypen von A, B und C werden normalerweise wenigstens ein Byte pro Stück sein).
Ich werde nicht durch die anderen gehen, aber ich würde bemerken, dass es in vielen Fällen am einfachsten ist, sich vom Ausgang zum Eingang zurück zu arbeiten, statt vom Eingang zum Ausgang.
Bearbeiten: oops: Art vergessen zu erwähnen, aber in C, OR
ist |
.
Edit: die Dinge zu vereinfachen, kann es am einfachsten sein (zumindest als erste) einige kleinen Funktionen zu schreiben, um als logisches Gatter: Diagramm
int bitwise_and(int a, int b) { return a & b); }
int bitwise_or(int a, int b) { return a | b; }
int bitwise_not(int a) { return ~a; }
int bitwise_xor(int a, int b) { return a^b; }
Dann können Sie im Grunde drehen nur ein Tor in einer Logik in einen Funktionsaufruf, so zum Beispiel ein OR-Gatter, das A und B als Eingänge nimmt und Y als Ausgang produziert würde Y = bitwise_or(a, b);
Also würde es bedeuten, die Wahrheitstabelle für jedes Tor auszuarbeiten? – Anderscc
@Bananaco: Die Wahrheitstabelle? Nein, normalerweise nicht. Sie könnten das tun, wenn Sie die Schaltung vereinfachen wollten (aber Demorgans Satz ist oft ausreichend), aber das Konvertieren in eine Programmiersprache erfordert das überhaupt nicht. –
Danke für die Informationen und Ihre Hilfe. Sehr geschätzt. – Anderscc