W innych językach: Čeština Deutsch English Français 日本語 Русский Українська 简体中文

Sterownik arytmetyczny

From Official Factorio Wiki
Revision as of 18:31, 6 July 2024 by Sonabeta (talk | contribs) (Fixed broken link)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Arithmetic combinator.png
Sterownik arytmetyczny

ArithmeticSprite.png

Receptura

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

Łącznie surowce

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

Kolor na mapie

Zdrowie

Quality normal.png 150
Quality uncommon.png 195 Quality rare.png 240
Quality epic.png 285 Quality legendary.png 375

Wielkość stosu

50

Pojemność rakiety

50 (1 stos)

Zużycie energii

1 kw (elektryczny)

Czas wydobycia

0.1

Rodzaj prototypu

arithmetic-combinator

Nazwa wewnętrzna

arithmetic-combinator

Wymagane do zbadania

Circuit network (research).png

Produkowane w

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

Sterownik arytmetyczny jest częścią sieci sterowniczej i jednym z trzech sterowników dostępnych w grze (wraz z sterownikiem stałym i sterownikiem decyzyjnym). Ekran na górze maszyny pokazuje symbol wybranej operacji. Sterownik może wykonać jedną z poniższych operacji na doprowadzonych sygnałach:

Arith combinator anim.png

  • dodawanie (+)
  • odejmowanie ()
  • mnożenie (*)
  • dzielenie (/)
  • modulo (%)
  • potęgowanie (^)
  • przesunięcie bitowe w lewo (<<)
  • przesunięcie bitowe w prawo (>>)
  • bitowa operacja AND (&)
  • bitowa operacja OR (|)
  • bitowa operacja XOR (^)

Sterownik arytmetyczny przyjmuje dwa połączenia wejściowe (czerwony i zielony przewód) i wysyła dane wyjściowe do obu połączeń wyjściowych. Przewody wejściowe podłącza się do terminali po lewej stronie maszyny, a przewody wyjściowe do terminali po prawej stronie maszyny.

GUI Sterownika arytmetycznego.

Działanie

Wewnętrzny proces logiczny składa się z trzech etapów:

  1. Wszystkie sygnały wejściowe na czerwonym i zielonym przewodzie są sumowane wewnątrz sterownika.
  2. Wybrana operacja zostaje wykonana na wybranym sygnale (lub sygnałach).
  3. Wynik operacji zostaje wysłany jako wybrany sygnał wyjściowy.

Operandami mogą być dowolny pojedynczy sygnał lub stała wartość. Maksymalnie jeden z operandów może być wirtualnym sygnałem "każdy" (w grze opisanym jako "Dla każdego sygnału").

Jeśli żaden z operandów nie jest sygnałem "każdy", wyjście musi być pojedynczym sygnałem. Operacja jest wykonywana na wartościach wybranego lewego i prawego sygnału, a wynik jest wysyłany do wyjścia na określonym sygnale.

Jeśli jednym z operandów jest sygnał "każdy", wówczas wyjście może być pojedynczym sygnałem lub sygnałem "każdy". Jeśli wyjście jest sygnałem "każdy", wówczas operacja jest wykonywana indywidualnie na wartości każdego sygnału wejściowego wraz z wartością drugiego operandu, a każdy wynik jest wysyłany do wyjścia na tym samym sygnale. Jeśli wyjście jest pojedynczym sygnałem, operacja jest wykonywana na każdym z sygnałów wejściowych, poszczególne wyniki są sumowane, a ostateczny wynik jest wysyłany do wyjścia na określonym sygnale.

Uwagi dotyczące operacji arytemtycznych

W przypadku użycia dzielenia wynik jest obcinany po przecinku:

  • 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, oznaczane za pomocą %, jak w większości języków programowania, to reszta z dzielenia. Na przykład 13 % 3 to 1 (13 = 4 * 3 + 1). Operator można połączyć na przykład z obcinanym dzieleniem, jak opisano powyżej, aby oddzielić poszczególne cyfry liczby do wykorzystania w budowaniu wizualnych wskaźników:

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

Negacja operandu po lewej stronie modulo neguje wynik, podczas gdy negacja operandu po prawej stronie nie ma żadnego efektu:

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

Przesunięcie bitowe w lewo i Przesunięcie bitowe w prawo nie są operacjami arytmetycznymi. Te operacje zajmują się liczbami binarnymi. Zera i jedynki składające się na liczbę są przesuwane w określonym kierunku, co może skutkować zupełnie inną liczbą ze względu na zmianę wartości binarnej.

Przykład operacji 'Przesunięcie bitowe w lewo'.

Zobacz również