Sterownik arytmetyczny
Sterownik arytmetyczny |
Receptura |
|||||||||||||
+ + → | |||||||||||||
Łącznie surowce |
|||||||||||||
+ + | |||||||||||||
Kolor na mapie |
|||||||||||||
Zdrowie |
|
||||||||||||
Wielkość stosu |
50 |
||||||||||||
50 (1 stos) |
|||||||||||||
Zużycie energii |
1 kw (elektryczny) |
||||||||||||
Czas wydobycia |
0.1 |
||||||||||||
Rodzaj prototypu |
|||||||||||||
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.
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.



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.
- Przebudowano interfejs użytkownika.
- 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.
- 0.12.0:
- Wprowadzono.