算術回路
算術回路 |
レシピ |
|||||||||||||
+ + → | |||||||||||||
トータルコスト |
|||||||||||||
+ + | |||||||||||||
マップ上での表示色 |
|||||||||||||
耐久力 |
|
||||||||||||
最大スタック数 |
50 |
||||||||||||
50 (1 スタック) |
|||||||||||||
エネルギー消費量 |
1 kw (電気) |
||||||||||||
採掘時間 |
0.1 |
||||||||||||
Prototype type |
|||||||||||||
Internal name |
arithmetic-combinator |
||||||||||||
必要なテクノロジー |
|||||||||||||
製作可能設備 |
|||||||||||||
算術回路は、回路ネットワークの一部であり、ゲームで利用できる四種類の回路のうちの一つ(残りは定数回路と条件回路と選別回路)である。 それぞれの算術回路は、信号に対して以下の演算を実行でき、それに対応した記号をその上面に表示する。
- 加算 (+)
- 減算 (−)
- 乗算 (*)
- 除算 (/)
- 剰余 (%)
- 累乗 (^)
- 左ビットシフト (<<)
- 右ビットシフト (>>)
- ビットAND (&)
- ビットOR (|)
- ビットXOR (^)
算術回路は2つの入力(レッドケーブルとグリーンケーブル)を受け取り、両方の出力に結果を出力する。入力のケーブルはサイドバーの画像における左側のノブに接続し、出力は右側に接続する。
機能
内部処理は3ステップに分かれる。
- レッドケーブルとグリーンケーブルからのすべての入力信号を回路内で合計する。
- 選択された信号に対して、指定された演算を実行する。
- 演算の結果を、選択された出力信号として出力する。
演算は、すべての信号または定数に対して可能である。最大1つのオペランドはそれぞれの 仮想シグナルを指定できる。
オペランドがそれぞれの信号であっても、出力は常に1つの信号になる。選択された左と右の信号に対して演算が行われて、指定された信号が出力に送られる。
オペランドがそれぞれの信号の場合、出力は単一の信号またはそれぞれの信号にできる。出力がそれぞれの信号の場合、それぞれの入力信号の種類ごとに演算が実行され、出力にも同じ種類の信号がそれぞれに送信される。 出力が単一の信号の場合、それぞれの入力信号の種類ごとに演算が実行され、それらが合算された結果の値が、指定された信号の出力として送られる。
演算の注意事項
'除算の場合、結果は切り捨てられる。
- 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
左ビットシフト と 右ビットシフト は数値を2進数として取り扱う。数値を構成する0と1が指定された方向にずらされた結果、2進数の値が変化するため、全く違う値になる可能性がある。このシフトは右ビットシフトで符号ビットを保持するため、算術シフトと呼ばれる。
左ビットシフトでは、最下位ビット(LSB)に0が挿入され、最上位ビット(MSB)は失われる。 正の数(MSB=0の数)の右ビットシフトでは、最上位ビット(MSB)に0が挿入され、最下位ビット(LSB)は失われる。 負の数(MSB=1の数)の右ビットシフトでは、符号を維持するために最上位ビット(MSB)に1が挿入され、最下位ビット(LSB)は失われる。