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

Arithmetic combinator/pl: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
(Page created)
 
m (Fixed broken link)
 
Line 29: Line 29:
# Wynik operacji zostaje wysłany jako wybrany sygnał wyjściowy.
# 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ć [[Virtual signals/pl#Każdy|wirtualnym sygnałem ''"każdy"'']] (w grze opisanym jako "Dla każdego sygnału").
Operandami mogą być dowolny pojedynczy sygnał lub stała wartość. Maksymalnie jeden z operandów może być [[Circuit_network/pl#Sygnały_wirtualne|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 ż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.

Latest revision as of 18:31, 6 July 2024

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

Receptura

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

Łącznie surowce

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

Kolor na mapie

Zdrowie

150

Wielkość stosu

50

Zużycie energii

1 kw (elektryczny)

Czas wydobycia

0.1

Rodzaj prototypu

arithmetic-combinator

Nazwa wewnętrzna

arithmetic-combinator

Wymagane technologie

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ż