論理演算とは、対となる2つの情報に対する計算である。
電子機器などで活用されており、ブール演算とも呼ばれる。
正しく詳しく知りたい場合は、ググるか本屋に行ってください。
概要
電卓で0以上の整数の足し算をする際には、足す数と足される数(=入力)は、0からディスプレイの上限に至るまでの様々な数を使うことができる。そして計算結果の和(=出力)も、同じくらい様々な数である。
仮に、このディスプレイが0~9999まで表示できるとすれば、この計算に関わる、2つの入力と出力はいずれも、10000種類のいずれかの数である。(エラーは除く)
上の例では10000種類だったが、全ての入力と出力が対となる2種類の情報のどちらかである演算を論理演算という。この一対の情報を論理といい、対をなすそれぞれの情報を論理値や真理値などという。
論理値はそれぞれ、"真"・"偽"や"0"・"1"と表記して論述することが多いが、"Yes"・"No"や、
"はいている"・"はいてない"など何でもよい。が、ここでは二進法について言及するため0・1を用いる。
また、論理演算を行う回路を論理回路といい、論理演算がもととなる数学的な体系を論理代数という。
演算
1入力1出力
電卓による足し算の計算では入力される数が2つだが、数が1つだとしても「1,=」と入力した場合は動作が正しく行われる。これが「変化しない」という1つの入力に対し1つ出力される演算の例である。
更に数学チックなものには、階乗(5!=5*4*3*2*1=120)などがある。
論理においては、入力と出力ともに0・1の2種類しかないため、階乗のように複雑なことを考える余地はない。先述の「変化しない」を含め、以下の4つが挙げられる。
これらのうち使い道がありそうな演算は4つ目である。
この論理演算を、否定という。英語名もよく使い、その際はNOTという。
論理値のどちらかをとる予定のAという箱があるとしたとき、
このAの否定を、電子工学では記号でAと表す。
2入力1出力
電卓だと四則演算(+,-,×,÷)が挙げられる。
論理においては、どちらかの入力のままや必ず0・1であるなどの使い道のない演算もあるが、使い道のある演算には以下の2つがある。
論理値のどちらかをとる予定の箱がAとBの2つあるとしたとき、
AとBの論理積と論理和を、電子工学ではそれぞれ記号でA・B、A+Bと表す。
これらの、否定と論理積と論理和の3つが基本となる論理演算である。
他にもよく使う演算には、否定論理積や否定論理和や排他的論理和があるが、上の3つを組み合わせることで計算できる。難しいので省略する。
また、入力や出力が増えても、組み合わせ方を工夫した演算をするだけである。
演算の性質など詳しくは命題を参照ください。
使用方法
二進法
論理においては、0・1の2種類の数値しか扱えないが、
論理値を2つ用意し、片方の数値を2倍して考えて和を取ること、と決めれば0から3までの数値を表現できる。
論理値を3つ用意し、そのうち1つの数値を4倍、1つを2倍して考えて、和を取ること、と決めれば0から7まで表現できる。
このように数を増やしていけば、全ての整数を表現することができる。
そして、1倍だと考えることにした数字を一番右に、2倍だと考えることにした数字をその左に、4倍は更に左にと、順に並べていく。
このように、0と1の羅列によって整数値を表現する方法を二進法といい、このように表された数を二進数という。
論理回路
整数は二進法を使うことで2種類の情報のみで表すことができる。
「電流が流れている」と「電流が流れていない」などを用いて二進数を表すことで、コンピュータの内部機構は作られている。
四則演算は紙に筆算で書けるが、電流を扱うため、先述した演算を電流に対して行わなければならない。
このときの、論理演算を行う回路を論理回路という。
流れてきた電流に対して、論理積などのそれぞれの論理演算の結果に合った電流が流れていくように電子部品を並べることで論理回路は作られる。
複数の論理演算を用いて、より複雑な論理回路を作ることで、四則演算などの様々な計算が表現できる。
ニコニコ動画において
論理値となる2種類の情報の表現方法を工夫し、入力に対する出力が正確に行われるなら、電流に限らず様々なものに論理演算をさせることができる。
Minecraftには、レッドストーン回路があり、電子回路と同じように回路を作れるため、電卓など様々なものが作られていた。
電子回路から離れて、玩具を用いることで論理演算を行う者もいた。
近年では、スーパーマリオメーカーで計算を行う動きが盛んである。
マリオメーカーでは、様々なパーツを用いてコースを自作することができる。
そこで、入力と出力として、アイテムの有無やブロックを叩くか否かなどの2値の情報によって表した2進数を使い、ノコノコなどがコース内を移動する際に論理演算が行われるようにコースを作成し、
その後、出力部分の変化を2進数などで読み取ることで、計算が行われたとするものである。
詳しくは、マリオメーカー学会の記事の電子計算機部門を参照ください。
関連動画
関連項目
- 1
- 0pt