Aritmetický kombinátor
Aritmetický kombinátor |
Recept |
|
+ + → | |
Počty základních surovin |
|
+ + |
Recept |
|
+ + → | |
Počty základních surovin |
|
+ + |
Barva na mapě |
|
Životy |
150 |
Velikost štosu |
50 |
Konzumace energie |
1 kw (elektrické) |
Doba těžebí |
0.1 |
Jméno prototypu |
|
Interní jméno |
arithmetic-combinator |
Požadované technologie |
|
Vytvářeno v |
|
Aritmetický kombinátor je součástí obvodové sítě a jedním ze třech typů kombinátoru ve hře (společně s konstantním a rozhodovacím kombinátorem). Každý aritmetický kombinátor provádí jednu z dostupných aritmetických operací na signálech, a bude ukazovat symbol dotyčné operace na své horní straně:
- sčítání (+)
- odčítání (-)
- násobení (*)
- dělení (/)
- modulo (%)
- umocnění (^)
- levý bitový posun (<<)
- pravý bitový posun (>>)
- bitové AND (&)
- bitové OR (|)
- bitové XOR (^)
Kombinátor přijímá až dvě vstupní připojení (červený a zelený drát) a výstup posílá do obou výstupních sběrnic. Vstupní zdířky jsou více zasunuté do těla kombinátoru, výstupní zdířky jsou více vyvedeny ven. Při použití klávesy Alt se také zobrazí šipky znázorňující vstup a výstup.
Funkce
Vnitřní logika pokračuje ve třech krocích:
- Každý signál nastavený jako vstupní je sečten ze zelených a červených připojení uvnitř kombinátoru.
- Na výsledku je provedena nastavená aritmetická operace.
- Výsledek operace je vysílán do vstupu jako předem nastavený kanál.
Levá část operace může být jakýkoliv signál včetně virtuálního signálu každý, pravá část může být jakýkoliv signál nebo konstantní hodnota. Je-li levá část výrazu jeden signál, výstup je také jeden signál.
Pokud je levá část výrazu signál každý, výstup je buď jeden signál nebo také signál každý. Je-li výstup signál každý, provádí se operace na každém signálu zvlášť a výsledky jsou také vysílány zvlášť na stejném kanálu, jako byl vstupní kanál výpočtu. Pokud je výstup jediný kanál, výsledky ze všech kanálů na vstupu se sečtou a vyšlou na zvoleném kanálu.
Poznámky k operacím
Při dělení se výsledek zaokrouhluje dolů:
- 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, značené většinou programovacích jazyků jako %, je zbytkem po celočíselném dělení. Například 13 % 3 je 1 (13 = 4 * 3 + 1). To je užitečné například při oddělování jednotlivých cifer čísla pro použití pro displeje:
- (24321 / 10000) % 10 = 2
- (24321 / 1000) % 10 = 4
- (24321 / 100) % 10 = 3
- (24321 / 10) % 10 = 2
- (24321 / 1) % 10 = 1
Je-li dělenec záporný, výsledek je také záporný. Záporný dělitel ale nečiní výsledek záporným.
- 13 % 3 = 1
- 13 % -3 = 1
- -13 % 3 = -1
- -13 % -3 = -1