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
Sonabeta (talk | contribs)
Page created
 
Mefisto1029 (talk | contribs)
No edit summary
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Languages}}{{Translation verification|revisionID=191169}}
{{Languages}}{{Translation verification|revisionID=214173}}
{{:Infobox:Arithmetic combinator}}
{{:Infobox:Arithmetic combinator}}


'''Sterownik arytmetyczny''' jest częścią [[circuit network/pl|sieci sterowniczej]] i jednym z trzech sterowników dostępnych w grze (wraz z [[constant combinator/pl|sterownikiem stałym]] i [[decider combinator/pl|sterownikiem decyzyjnym]]). Ekran na górze maszyny pokazuje symbol wybranej operacji. Sterownik może wykonać jedną z poniższych operacji na doprowadzonych sygnałach:
'''Sterownik arytmetyczny''' jest częścią [[circuit network/pl|sieci sterowniczej]] i jednym z czterech sterowników dostępnych w grze (wraz z [[constant combinator/pl|sterownikiem stałym]], [[decider combinator/pl|sterownikiem decyzyjnym]] i [[selector combinator/pl|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:


[[File:arith_combinator_anim.png]]
[[File:arith_combinator_anim.png]]
Line 23: Line 23:


== Działanie ==
== Działanie ==
Wewnętrzny proces logiczny składa się z trzech etapów:
Operandy mogą być dowolnym pojedynczym sygnałem lub stałą wartością. Maksymalnie jeden z operandów może być [[Circuit network/pl#Każdy|wirtualnym sygnałem''każdy'']]. Dla każdego operandu sygnału można wybrać przewody wejściowe. Jeśli wybrane zostaną oba przewody, wejścia są sumowane.
 
# Wszystkie sygnały wejściowe na czerwonym i zielonym przewodzie są sumowane wewnątrz sterownika.
# Wybrana operacja zostaje wykonana na wybranym sygnale (lub sygnałach).
# 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").


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.
Line 60: Line 54:
* −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 [[:Wikipedia:Binary_number/pl|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.
'''Przesunięcie bitowe w prawo''' i '''Przesunięcie bitowe w lewo''' dotyczą liczb w reprezentacji [[:Wikipedia:pl:Dwójkowy system liczbowy|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.


[[File:Bitshiftleft.png|none|thumb|200px|Przykład operacji 'Przesunięcie bitowe w lewo'.]]
[[File:Bitshiftleft.png|none|thumb|200px|Przykład operacji 'Przesunięcie bitowe w lewo'.]]
[[File:BitshiftRightZero.png|none|thumb|200px|Przykład operacji 'Przesunięcie bitowe w prawo (liczba dodatnia)'.]]
[[File:BitshiftRightOne.png|none|thumb|200px|Przykład operacji 'Przesunięcie bitowe w prawo (liczba ujemna)'.]]
== Historia ==
{{history|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.}}
{{history|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.}}
{{history|0.13.0|
* Połączone przewody są podświetlane po najechaniu kursorem na sterownik podłączony do [[circuit network/pl|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.}}
{{history|0.12.5|
* Sterowniki teraz emitują światło.}}
{{history|0.12.2|
* Sterowniki nie wyłączają się już, gdy nie są podłączone żadne przewody.}}
{{history|0.12.0|
* Wprowadzono.}}


==Zobacz również==
== Zobacz również ==
*[[Decider combinator/pl|Sterownik decyzyjny]]
* {{L|Circuit network}}
*[[Constant combinator/pl|Sterownik stały]]
* {{L|Combinators}}
*[[Tutorial:Combinator tutorial/pl|Samouczek: Sterowniki]]
** {{L|Decider combinator}}
*[[Circuit network/pl|Sieć sterownikcza]]
** {{L|Constant combinator}}
*[[Tutorial:Circuit network cookbook/pl|Książka kucharska sieci sterowniczej]]
** {{L|Selector combinator}}
* {{L|Tutorial:Combinator tutorial}}
* {{L|Tutorial:Circuit network cookbook}}


{{LogisticsNav}}
{{LogisticsNav}}
{{C|Circuit network}}
{{C|Circuit network}}

Latest revision as of 09:08, 29 May 2025

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ż