切换语言: Čeština Deutsch English Français 日本語 Polski Русский Українська

Arithmetic combinator/zh: Difference between revisions

From Official Factorio Wiki
Jump to navigation Jump to search
mNo edit summary
(I understand the motivation, however there is no double space there on any page, so this should be uniform. Instead, I increased the top padding of the navbox to better separate it from the content.)
 
Line 59: Line 59:
* [[Tutorial:Combinator tutorial/zh|运算器教程]]
* [[Tutorial:Combinator tutorial/zh|运算器教程]]
* [[Tutorial:Circuit network cookbook/zh|{{Translation|Circuit network}}示例大全]]
* [[Tutorial:Circuit network cookbook/zh|{{Translation|Circuit network}}示例大全]]
<!-- The double blank lines here is intended to keep some spaces between the contents and the nav table, please do not remove -->


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

Latest revision as of 07:54, 10 July 2018

Arithmetic combinator.png
算术运算器

ArithmeticSprite.png

生产配方

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

原料总计

Time.png
8
+
Copper plate.png
10
+
Iron plate.png
5

在地图上显示的颜色

生命值

Quality normal.png 150
Quality uncommon.png 195 Quality rare.png 240
Quality epic.png 285 Quality legendary.png 375

每组数量

50

火箭载荷

50 (1 stack)

能量消耗

1 kw (电能)

开采工时

0.1

原型类型

arithmetic-combinator

内部名称

arithmetic-combinator

前置科技

Circuit network (research).png

可由以下设施生产

Assembling machine 1.png
Assembling machine 2.png
Assembling machine 3.png
Player.png

算术运算器是游戏里构成信号网络三个运算器的其中之一(另外两个是常量运算器判断运算器)。每个算术运算器在接收到信号后都可以执行以下的一种运算,并会在上面显示对应的操作符符号。

  • 加法(+
  • 减法(-
  • 乘法(*
  • 除法(/
  • 取余数(%
  • 幂(^
  • 左移位(<<
  • 右移位(>>
  • 按位与(&
  • 按位或(|
  • 按位异或(^

算术运算器接受两路输入(红线缆和绿线缆),并将结果发送到两路输出口。以右侧信息栏上的图片为准,输入口是左侧的两个端点,输出口位于右侧。

功能说明

算术运算器内部的处理逻辑分为三步:

  1. 所有的输入口的值在运算器内部会被相加。
  2. 指定的操作符会在所设置的信号上执行。
  3. 运算的结果会被以指定的信号输出。

左侧的操作数(简称左值)可以是任意的信号或者是每个”虚拟信号,右侧的操作数(简称右值)可以是任意的信号或者是一个常量值。

如果左值是“每个”信号,那么输出值既可以是单个信号,也可以是“每个”信号。如果输出信号是“每个”信号,那么输入信号上的值会分别与右值计算,并以同样的信号进行输出。如果输出信号是单一信号,那么输入信号上的所有值在与右值计算后,会被相加,并将相加结果以指定的信号输出。

运算时要注意的点

当使用除法时,结果的小数部分会被忽略:

  • 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

右移位是算术移位(依正负值扩展),而逻辑移位。

请参见