Arithmetic combinator/ru: Difference between revisions
(Localized from English.) |
m (Misspellings fix.) |
||
Line 24: | Line 24: | ||
# Результат этой операции выводится в качестве выбранного выходного сигнала. | # Результат этой операции выводится в качестве выбранного выходного сигнала. | ||
Левый операнд действия может быть любым | Левый операнд действия может быть любым одиночный сигналом или [[Virtual signals#Each|виртуальным сигналом ''каждый'']], а правый операнд может быть любым одиночным сигналом или постоянным значением. | ||
Если левый операнд представляет собой | Если левый операнд представляет собой одиночный сигнал, то на выходе должен быть также одиночный сигнал. Операция выполняется над значениями выбранных левого и правого сигналов, а результат отправляется на выход выбранного сигнала. | ||
Если левый операнд является сигналом ''каждый'', то выходом может быть одиночный сигнал или сигнал ''каждый''. Если на выход подается сигнал ''каждый'', то операция выполняется над значением каждого входного сигнала совместно со значением правого операнда, и каждый результат отправляется на выход того же сигнала. Если на выход подается одиночный сигнал, то операция выполняется над каждым из входных сигналов, а индивидуальные результаты суммируются, и результат отправляется на выход к выбранному сигналу. | Если левый операнд является сигналом ''каждый'', то выходом может быть одиночный сигнал или сигнал ''каждый''. Если на выход подается сигнал ''каждый'', то операция выполняется над значением каждого входного сигнала совместно со значением правого операнда, и каждый результат отправляется на выход того же сигнала. Если на выход подается одиночный сигнал, то операция выполняется над каждым из входных сигналов, а индивидуальные результаты суммируются, и результат отправляется на выход к выбранному сигналу. |
Revision as of 08:44, 4 February 2018
Арифметический комбинатор |
Затраты |
|||||||||||||
+ + → | |||||||||||||
Всего сырья |
|||||||||||||
+ + | |||||||||||||
Цвет на карте |
|||||||||||||
Здоровье |
|
||||||||||||
Размер пачки |
50 |
||||||||||||
50 (1 stack) |
|||||||||||||
Потребление |
1 kw (электричество) |
||||||||||||
Время добычи |
0.1 |
||||||||||||
Тип объекта |
|||||||||||||
Служебное имя |
arithmetic-combinator |
||||||||||||
Необходимые технологии |
|||||||||||||
Делается в |
|||||||||||||
Арифметический комбинатор - часть логической сети и один из трех типов комбинаторов, доступных в игре (еще есть постоянный комбинатор и сравнивающий комбинатор). Каждый арифметический комбинатор может выполнять одну из следующих математических операций над сигналами, при этом комбинатор отображает символ, соответствующий математической операции:
- сложение (+)
- вычитание (-)
- умножение (*)
- деление (/)
- остаток от деления (%)
- возведение в степень (^)
- побитный сдвиг влево (<<)
- побитный сдвиг вправо (>>)
- побитовое И (&)
- побитовое ИЛИ (|)
- побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ (^)
Арифметический комбинатор принимает два входящих соединения (красный и зеленый провода), и отправляет результат операции на оба выходных соединения. Входящие провода подключаются к узелкам на левой стороне спрайта на боковой панели, а провода для выходного подключения - на правой стороне.
Функции
Внутреняя логика процесса состоит из трех шагов:
- Все входящие сигналы на красном и зеленом проводах складываются внутри комбинатора.
- Выбранная операция выполняется над выбранным сигналом.
- Результат этой операции выводится в качестве выбранного выходного сигнала.
Левый операнд действия может быть любым одиночный сигналом или виртуальным сигналом каждый, а правый операнд может быть любым одиночным сигналом или постоянным значением.
Если левый операнд представляет собой одиночный сигнал, то на выходе должен быть также одиночный сигнал. Операция выполняется над значениями выбранных левого и правого сигналов, а результат отправляется на выход выбранного сигнала.
Если левый операнд является сигналом каждый, то выходом может быть одиночный сигнал или сигнал каждый. Если на выход подается сигнал каждый, то операция выполняется над значением каждого входного сигнала совместно со значением правого операнда, и каждый результат отправляется на выход того же сигнала. Если на выход подается одиночный сигнал, то операция выполняется над каждым из входных сигналов, а индивидуальные результаты суммируются, и результат отправляется на выход к выбранному сигналу.
Примечания по операциям
При использовании деления, результат усекается:
- 21 / 10 = 2
- 19 / 10 = 1
- -21 / 10 = -2
- -19 / 10 = -1
- 21 / -10 = -2
- 19 / -10 = -1
- -21 / -10 = 2
- -19 / -10 = 1
Остаток от деления, указываемый при помощи знака %, как и в большинстве языков программирования, является остатком от деления. Например, 13 % 3 = 1 (13 = 4 * 3 + 1). Это может быть применено, например, для выделения отдельных цифр числа при строительстве визуальных индикаторов, наряду с делением:
- (24321 / 10000) % 10 = 2
- (24321 / 1000) % 10 = 4
- (24321 / 100) % 10 = 3
- (24321 / 10) % 10 = 2
- (24321 / 1) % 10 = 1
Отрицание левого операнда также делает результат отрицательным, в то время как отрицание правого операнда ничего не делает.
- 13 % 3 = 1
- 13 % -3 = 1
- -13 % 3 = -1
- -13 % -3 = -1
"'Побитный сдвиг вправо" - это арифметический сдвиг (с добавочным знаком), не логический.
История изменений
- 0.15.0:
- В арифметический комбинатор добавлены остаток от деления, степень, побитовый сдвиг влево, побитовый сдвиг вправо, побитовое И, побитовое И, побитовое ИЛИ.
- 0.13.0:
- При наведении курсора на подключенный подключенный к логической сети комбинатор, его провода подсвечиваются.
- Комбинаторы показывают вход и выход при режиме, включаемом кнопкой ALT (ориг.: ALT-mode).
- Добавлено больше виртуальных сигналов для комбинаторов.
- Постоянный комбинатор теперь можно вращать.
- Опция "Входное количество" у сравнивающего комбинатора заставляет комбинатор копировать количество выбранного выходного сигнала со входных сигналов, вместо копирования количества из условия.
- Новая графика для комбинаторов.
- 0.12.5:
- Теперь комбинаторы излучают свет.
- 0.12.2:
- Комбинаторы больше не выключаются, когда не подключено проводов.
- 0.12.0:
- Введены в игру