Mit den Bit-Ranges pro Inport haben wir nun auch schon alle Parameter die wir brauchen.
Und wie die mitlesende Gemeinschaft bestimmt auch schon festgestellt hat,
werden Bits von rechts nach links geschrieben/gelesen.
Das ist wichtig um die Funktion des BIT SHIFT zu verstehen.
Die erste Integer, also die Zahl vom ersten Inport, die in die auszugebende Integer integriert werden soll, wird also an die rechteste Stelle der gemultiplexten Integer gesetzt.
Die Stelle, oder das Startbit, ist Bit 0. Man fängt bei Null an zu zählen.
Die Bit-Nummerierung entspricht übrigens auch dem binären Exponent:
Bit 0 ist 2 hoch 0 = 1,
Bit 1 ist 2 hoch 1 = 2,
Bit 2 ist 2 hoch 2 = 4,
Bit 3 ist 2 hoch 3 = 8, usw.
Da im Beispiel für die erste Integer die Range =4bit festgelegt wird, muss die zweite Integer (Inport 2) bei Bit 4 anfangen. Das heißt für sie: das Startbit ist Bit 4. Für die dritte Integer vom dritten Inport ist das Startbit 7 (4bit + 3 bit).
Das heisst also, jede Integer der Inports muss per BIT SHIFT LEFT (SHIFT<<) an die richtige Position der auszugebenden Integer gerückt werden.
In Reaktor Core umgesetzt sieht das also so aus:
Bit Mux - Forum 03 Mux integer.JPG
Die Eingangsinteger $ wird um ihr individuelles Offset (Startbit) nach links verschoben und zur Multiplexinteger hinzugemischt. Das hinzumischen geschieht mittels des nachfolgenden BIT OR (|). Das Ergebnis wird an den nächsten Inport-Muxer weitergegeben.
Das Startbit wird in diesem Macro um die definierte Range der Integer erweitert und auch der nächsten Instanz weitergegeben.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.