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

Sterownik arytmetyczny

From Official Factorio Wiki
Revision as of 08:48, 29 May 2025 by Mefisto1029 (talk | contribs)
Jump to navigation Jump to search
Sterownik arytmetyczny

Receptura

0.5
+
5
+
5
1

Łącznie surowce

8
+
10
+
5

Kolor na mapie

Zdrowie

150
195 240
285 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

Wymagana technologia

Produkowane w

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

  • 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

Operandy mogą być dowolnym pojedynczym sygnałem lub stałą wartością. Maksymalnie jeden z operandów może być wirtualnym sygnałemkażdy. Dla każdego operandu sygnału można wybrać przewody wejściowe. Jeśli wybrane zostaną oba przewody, wejścia są sumowane.

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 prawo i Przesunięcie bitowe w lewo dotyczą liczb w reprezentacji binarnej. Zera i jedynki tworzące liczbę są przesuwane w określonym kierunku, co może skutkować zupełnie inną liczbą, ze względu na zmianę wartości binarnej. Wykonywane przesunięcie nazywa się przesunięciem arytmetycznym, ponieważ zachowuje bit znaku na przesunięciu bitowym w prawo. W przypadku przesunięcia w lewo, 0 jest wstawiane do najmniej znaczącego bitu (LSB), a bit w najbardziej znaczącym bicie (MSB) jest tracony. W przypadku przesunięcia w prawo i liczba jest dodatnia (MSB=0), 0 jest wstawiane do MSB, a bit w LSB jest tracony. W przypadku przesunięcia w prawo i liczba jest ujemna (MSB=1), 1 jest wstawiane do MSB, aby zachować znak, a bit w LSB jest tracony.

Przykład operacji 'Przesunięcie bitowe w lewo'.
Przykład operacji 'Przesunięcie bitowe w prawo (liczba dodatnia)'.
Przykład operacji 'Przesunięcie bitowe w prawo (liczba ujemna)'.

Historia

  • 2.0.7:
    • Przebudowano interfejs użytkownika.
      • Teraz wyświetla sygnały wejściowe podczas konfigurowania sterowników.
      • Sygnały używane przez sterowniki można teraz filtrować między kolorem czerwonym, zielonym lub obydwoma.
  • 0.15.0:
    • Dodano Modulo, Potęgowanie, Przesunięcie bitowe w lewo, Przesunięcie bitowe w prawo, Bitowe AND, Bitowe OR i Bitowe XOR do Sterownika Arytmetycznego.
    • Added Modulo, Power, Left Bit Shift, Right Bit Shift, Bitwise AND, Bitwise OR and Bitwise XOR to the Arithmetic Combinator.
  • 0.13.0:
    • Połączone przewody są podświetlane po najechaniu kursorem na sterownik podłączony do sieci sterowniczej.
    • Sterowniki pokazują dane wejściowe i wyjściowe w trybie alt.
    • Więcej wirtualnych sygnałów dla sterowników.
    • Nowa grafika sterowników.
  • 0.12.5:
    • Sterowniki teraz emitują światło.
  • 0.12.2:
    • Sterowniki nie wyłączają się już, gdy nie są podłączone żadne przewody.

Zobacz również