In anderen Sprachen: Česky English Français Русский 中文

Arithmetic combinator/de: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
("Linke/Rechts Bitverschiebung" -> Bitverschiebung links/rechts". Es sind keine rechten oder linken Verschiebungen, sondern Verschiebungen nach rechts oder links)
 
(One intermediate revision by one other user not shown)
Line 17: Line 17:
* XOR (exklusiv-oder) (<span style="color:cyan">^</span>)
* XOR (exklusiv-oder) (<span style="color:cyan">^</span>)


Der Kombinator für Berechnungen akzeptiert zwei Eingangsanschlüsse (rote und grüne Kabel) und sendet seinen Ausgang an beide Ausgangsanschlüsse. Die Eingangsleitungen werden mit den Noppen auf der linken Seite verbunden, während die Ausgänge mit der rechten Seite verbunden werden.


Der Kombinator für Berechnungen akzeptiert zwei Eingangsanschlüsse (rote und grüne Kabel) und sendet seinen Ausgang an beide Ausgangsanschlüsse. Die Eingangsleitungen werden mit den Noppen auf der linken Seite verbunden, während die Ausgänge mit der rechten Seite verbunden werden.
[[File:Arithmetic_combinator_gui.png|350px|GUI des Kombinators für Berechnungen.]]<br />


== Funktion ==
== Funktion ==
Line 25: Line 26:
# Die angegebene Operation wird für die ausgewählten Signale ausgeführt.
# Die angegebene Operation wird für die ausgewählten Signale ausgeführt.
# Das Ergebnis dieser Operation wird als ausgewähltes Ausgangssignal ausgegeben.
# Das Ergebnis dieser Operation wird als ausgewähltes Ausgangssignal ausgegeben.


Der linke Operand der Operation kann ein beliebiges einzelnes Signal oder das virtuelle Signal ''Jedes'' sein, und der rechte Operand kann ein einzelnes Signal oder ein konstanter Wert sein. Wenn der linke Operand ein einzelnes Signal ist, muss der Ausgang ein einzelnes Signal sein. Die Operation wird an den Werten der ausgewählten linken und rechten Signale ausgeführt, und das Ergebnis wird mit dem angegebenen Signal an den Ausgang gesendet. Wenn der linke Operand das '' Jedes '' Signal ist, kann der Ausgang ein einzelnes Signal oder das '' Jedes '' Signal sein. Wenn der Ausgang das '' Jedes '' Signal ist, wird die Operation einzeln mit dem Wert jedes Eingangssignals zusammen mit dem Wert des rechten Operanden ausgeführt, und jedes Ergebnis wird mit demselben Signal an den Ausgang gesendet. Wenn der Ausgang ein einzelnes Signal ist, wird die Operation an jedem der Eingangssignale durchgeführt, die einzelnen Ergebnisse werden alle addiert und dieses Ergebnis wird an den Ausgang des angegebenen Signals gesendet.
Der linke Operand der Operation kann ein beliebiges einzelnes Signal oder das virtuelle Signal ''Jedes'' sein, und der rechte Operand kann ein einzelnes Signal oder ein konstanter Wert sein. Wenn der linke Operand ein einzelnes Signal ist, muss der Ausgang ein einzelnes Signal sein. Die Operation wird an den Werten der ausgewählten linken und rechten Signale ausgeführt, und das Ergebnis wird mit dem angegebenen Signal an den Ausgang gesendet. Wenn der linke Operand das '' Jedes '' Signal ist, kann der Ausgang ein einzelnes Signal oder das '' Jedes '' Signal sein. Wenn der Ausgang das '' Jedes '' Signal ist, wird die Operation einzeln mit dem Wert jedes Eingangssignals zusammen mit dem Wert des rechten Operanden ausgeführt, und jedes Ergebnis wird mit demselben Signal an den Ausgang gesendet. Wenn der Ausgang ein einzelnes Signal ist, wird die Operation an jedem der Eingangssignale durchgeführt, die einzelnen Ergebnisse werden alle addiert und dieses Ergebnis wird an den Ausgang des angegebenen Signals gesendet.


== Hinweise zu Operationen ==
== Hinweise zu Operationen ==
Line 41: Line 40:
* –19 / –10 = 1
* –19 / –10 = 1


 
'''Modulo''', angegeben mit %, wie es in den meisten Programmiersprachen der Fall ist, ist der Rest nach der Division. Zum Beispiel ist 13% 3 1 (13 = 4 · 3 + 1 bzw. 13 / 3 = 4 '''Rest 1'''). Dies kann zum Beispiel wie oben beschrieben mit einer abgeschnittenen Unterteilung kombiniert werden, um einzelne Ziffern einer Zahl zur Verwendung beim Erstellen visueller Indikatoren zu trennen:
'''Modulo''', angegeben mit %, wie es in den meisten Programmiersprachen der Fall ist, ist der Rest nach der Division. Zum Beispiel ist 13% 3 1 (13 = 4 · 3 + 1). Dies kann zum Beispiel wie oben beschrieben mit einer abgeschnittenen Unterteilung kombiniert werden, um einzelne Ziffern einer Zahl zur Verwendung beim Erstellen visueller Indikatoren zu trennen:
* (24321/10000)% 10 = 2
* (24321/10000)% 10 = 2
* (24321/1000)% 10 = 4
* (24321/1000)% 10 = 4
Line 48: Line 46:
* (24321/10)% 10 = 2
* (24321/10)% 10 = 2
* (24321/1)% 10 = 1
* (24321/1)% 10 = 1
Das Negieren des linken Operanden eines Modulos negiert das Ergebnis, während das Negieren des rechten Operanden nichts bewirkt:
Das Negieren des linken Operanden eines Modulos negiert das Ergebnis, während das Negieren des rechten Operanden nichts bewirkt:
* 13% 3 = 1
* 13% 3 = 1
Line 54: Line 53:
* −13% −3 = −1
* −13% −3 = −1


 
'''Bitverschiebung links''' und '''Bitverschiebung rechts''' sind keine Arithmetik. Stattdessen befassen sich diese Optionen mit Zahlen im Status [[:Wikipedia:de:Binärzahl|binär]]. Die Nullen und Einsen, aus denen eine Zahl besteht, werden in die angegebene Richtung verschoben, was aufgrund der Änderung des Binärwerts zu einer völlig anderen Zahl führen kann.
'''Bitverschiebung links''' und '''Bitverschiebung rechts''' sind keine Arithmetik. Stattdessen befassen sich diese Optionen mit Zahlen im Status [[: Wikipedia: Binärnummer | binär]]. Die Nullen und Einsen, aus denen eine Zahl besteht, werden in die angegebene Richtung verschoben, was aufgrund der Änderung des Binärwerts zu einer völlig anderen Zahl führen kann.
[[File: Bitshiftleft.png | none | thumb | 200px | Beispiel für eine 'Bitverschiebung links'.]]
[[File: Bitshiftleft.png | none | thumb | 200px | Beispiel für eine 'Bitverschiebung links'.]]



Latest revision as of 14:56, 24 August 2021

Arithmetic combinator.png
Kombinator für Berechnungen

ArithmeticSprite.png

Bauplan

Time.png
0.5
+
Copper cable.png
5
+
Electronic circuit.png
5
Arithmetic combinator.png
1

Gesamtressourcen

Time.png
8
+
Copper plate.png
10
+
Iron plate.png
5

Bauplan

Time.png
0.5
+
Copper cable.png
5
+
Electronic circuit.png
5
Arithmetic combinator.png
1

Gesamtressourcen

Time.png
14.25
+
Copper plate.png
22.5
+
Iron plate.png
10

Farbe auf Karte

Trefferpunkte

150

Stapelgröße

50

Energieverbrauch

1 kw (elektrisch)

Abbauzeit

0.1

Prototyp-Typ

arithmetic-combinator

Interner Name

arithmetic-combinator

Benötigte Technologien

Circuit network (research).png

Produziert von

Assembling machine 1.png
Assembling machine 2.png
Assembling machine 3.png
Player.png

Der Kombinator für Berechnungen ist Teil des Schaltungsnetz und einer von drei Arten von Kombinatoren, die im Spiel verfügbar sind (zusammen mit dem Kombinator für Konstanten und dem Kombinator für Vergleiche). Jeder Kombinator für Berechnungen kann eine der folgenden mathematischen Operationen an Signalen ausführen und zeigt das entsprechende Symbol oben an:

Arith combinator anim.png

  • Addition (+)
  • Subtraktion ()
  • Multiplikation (*)
  • Division(/)
  • Modulo (%)
  • Potenzierung (^)
  • Bitverschiebung links (<<)
  • Bitverschiebung rechts (>>)
  • AND (und) (&)
  • OR (oder) (|)
  • XOR (exklusiv-oder) (^)

Der Kombinator für Berechnungen akzeptiert zwei Eingangsanschlüsse (rote und grüne Kabel) und sendet seinen Ausgang an beide Ausgangsanschlüsse. Die Eingangsleitungen werden mit den Noppen auf der linken Seite verbunden, während die Ausgänge mit der rechten Seite verbunden werden.

GUI des Kombinators für Berechnungen.

Funktion

Der interne Logikprozess besteht aus drei Schritten:

  1. Alle Eingangssignale an den roten und grünen Drähten werden im Kombinator summiert.
  2. Die angegebene Operation wird für die ausgewählten Signale ausgeführt.
  3. Das Ergebnis dieser Operation wird als ausgewähltes Ausgangssignal ausgegeben.

Der linke Operand der Operation kann ein beliebiges einzelnes Signal oder das virtuelle Signal Jedes sein, und der rechte Operand kann ein einzelnes Signal oder ein konstanter Wert sein. Wenn der linke Operand ein einzelnes Signal ist, muss der Ausgang ein einzelnes Signal sein. Die Operation wird an den Werten der ausgewählten linken und rechten Signale ausgeführt, und das Ergebnis wird mit dem angegebenen Signal an den Ausgang gesendet. Wenn der linke Operand das Jedes Signal ist, kann der Ausgang ein einzelnes Signal oder das Jedes Signal sein. Wenn der Ausgang das Jedes Signal ist, wird die Operation einzeln mit dem Wert jedes Eingangssignals zusammen mit dem Wert des rechten Operanden ausgeführt, und jedes Ergebnis wird mit demselben Signal an den Ausgang gesendet. Wenn der Ausgang ein einzelnes Signal ist, wird die Operation an jedem der Eingangssignale durchgeführt, die einzelnen Ergebnisse werden alle addiert und dieses Ergebnis wird an den Ausgang des angegebenen Signals gesendet.

Hinweise zu Operationen

Bei Verwendung von Division wird das Ergebnis abgeschnitten:

  • 21/10 = 2
  • 19/10 = 1
  • –21 / 10 = –2
  • –19 / 10 = –1
  • 21 / –10 = –2
  • 19 / −10 = −1
  • –21 / –10 = 2
  • –19 / –10 = 1

Modulo, angegeben mit %, wie es in den meisten Programmiersprachen der Fall ist, ist der Rest nach der Division. Zum Beispiel ist 13% 3 1 (13 = 4 · 3 + 1 bzw. 13 / 3 = 4 Rest 1). Dies kann zum Beispiel wie oben beschrieben mit einer abgeschnittenen Unterteilung kombiniert werden, um einzelne Ziffern einer Zahl zur Verwendung beim Erstellen visueller Indikatoren zu trennen:

  • (24321/10000)% 10 = 2
  • (24321/1000)% 10 = 4
  • (24321/100)% 10 = 3
  • (24321/10)% 10 = 2
  • (24321/1)% 10 = 1

Das Negieren des linken Operanden eines Modulos negiert das Ergebnis, während das Negieren des rechten Operanden nichts bewirkt:

  • 13% 3 = 1
  • 13% –3 = 1
  • –13% 3 = –1
  • −13% −3 = −1

Bitverschiebung links und Bitverschiebung rechts sind keine Arithmetik. Stattdessen befassen sich diese Optionen mit Zahlen im Status binär. Die Nullen und Einsen, aus denen eine Zahl besteht, werden in die angegebene Richtung verschoben, was aufgrund der Änderung des Binärwerts zu einer völlig anderen Zahl führen kann.

Beispiel für eine 'Bitverschiebung links'.

Siehe auch