代数的トロン

この記事はシリーズの一部であり、シリーズインデックスにアクセスします。 ( シリーズインデックス )

この記事では、論理ゲートを扱い、ブール代数も同様に扱います。 ロジックゲートは、オリジナルの映画「Tron」(私は新しいTronを見たことがないかもしれません)を思い出させます。様々なゲートウェイを通って移動すると、ロボットの声で「はい」と「いいえ」と発声します 。

ジョージブールとその代数

まず背景の少し。 まもなく、ジョージブールと名付けられたこの非常にスマートな男が「思考法の調査」という本を書いた。 それはかなりの調査でしたが、私は実際にそれを読んでいないので、私は聴聞会でしか知りません。 1854年に書かれたこの本では、あなたはそれを信じることができます、彼は別の種類の代数の原則を説明します。 この代数の変数は一定の値に制約され、その演算は異なる性質を持ち、結果としてそれらの演算の性質や法則を持ちます。 ブール代数の1つのアプリケーションは、デジタルロジックとコンピュータプログラミングの世界にあります。そのため、今日我々はそれについて話しています。

ブール代数では、変数は2つの状態しか持たず、通常は1または0と表示されます。 私は、これまでに書いた “バイナリに関する記事“から、この音が本当に馴染んでいると確信しています。 そうでない場合は、その記事を読んで読んでください。 私たちは、今のところ特異変数(1と0だけ)を扱い、それらを “論理ゲート”に関連付けることに取り組んでいます。

ブール代数の基本的な操作は、「結合」、「分離」、および「否定」として知られています。 これらの操作は、それぞれ「x∧y」、「x∨y」、「¬x」と表記されます。これらの操作は、通常の代数操作にも関連し、記事が進むにつれてより明確になります。 結合、加算のための加算(x + y)、否定のための否定(-x)私はコンピュータが本当に正常な代数との関係に注意を払うことを考えるときにはそれほど有用ではないが、 私はあなたを助けるための図を含んでいます:

operations

バイナリのような乗算による結合演算:xまたはyがゼロの場合、結果はゼロです。 1 * 0 = 0,0 * 1 = 0であるが、1 * 1 = 1である。

Disjunction (分離) は、2つの値が1の場合(0 + 0 = 1,0 + 1 = 1,1 + 0 = 1、1 + 1 = 1)に1つの例外を除いてバイナリのような加算で機能します。

ブール代数では、話すように「負の1」はゼロであり、負のゼロは1である。 したがって、否定は-1 = 0と-0 = 1の値を反転させます。

それがあなたを混乱させるなら、真理値表として知られているものを使うこともできます。 真理値表はすべての可能な入力を列挙し、操作の結果を示します。

truth

思想の派生

「コンポジション」を使用することで、より複雑な操作をさらに作成できます。 私たちが作ることのできるものがいくつかありますが、私が見ている限りでは、カップルだけが本当に人気があります。 同様に、論理ゲートに関して言及する価値のある唯一のものです。 最初は「排他的」で、もう1つは「等価」です。 それぞれの構成は、「x⊕y」=「(x∨y)∧¬(x∧y)」、「x = y =¬(x⊕y)」です。

かなり面白いものですね? 我々はゾーンを開始する領域に入ります(なぜ、私は高次数で問題があるのでしょうか)。 私はそれらがあなたの頭の上に右に行かなかったことを願って、あなたはそれらを働かそうとすることができます。 しかし、絶対に必要なわけではありません。 操作の真理値表を以下に示します。

composition

論理的なゲート(と映画Tron)を実際に理解するために知っておく必要があるのは、すべての種類の法律、完全性、原則、図、サブセット、ベクトル、プロトタイプ、抽象概念、表現、公理、およびアプリケーションです。

ロジックのゲートウェイ

論理演算が何であるかを知ったので、基本論理回路(およびいくつかの高度なもの)は、論理ゲートが(通常)論理演算を実装する回路の一部であることを理解するでしょう。 彼らは私のバイナリの記事で述べたように物理的には電荷、電力は1、非常に低い電力は0で動作します。 これらのゲートは、通常、ダイオードやトランジスタを使って作られていますが、ロジックを実行できるものは、ナノテクノロジーのような機械的なデバイスや分子でも機能します。

論理ゲートがハードウェアでどのように実装されているかは、他の記事のために保存するのが最もよいかもしれませんが、プログラマーは、ダイアグラム内でどのように見えるか、それらの組み立て方、 作業。 if文のようにブール論理を知っている場所があり、論理ゲートを使ってそれをダイアグラムで書くことができます(これは私が一番簡単だと思います)。

これまでに2つの変数を使用していたので、合計16のブール代数関数が可能です。 私は、関数の可能な組み合わせとそれらが意味するものをすべて調べたり、調べたりするために、読者に練習として残しておきます。 私はここで、各論理ゲートとその関係について簡単に話します。 まず、NANDゲートがあります。

NANDゲートは「ない」または一般に「両方ではない」。 それはしばしば縦棒で書かれます:|。もしあなたがL33Tハッカーのように聞こえたいのであれば、それは “Sheffer stroke”と呼ばれます。 NOR(来るべき)のように、束ねられたNANDの束はそれだけですべてを行うために使用できます。 文字通り。 3つの基本機能はすべて、NANDゲートのみを使用して構築することができます。 それはとても重要なゲートです。 私はそれがなぜそうであるか決定するために読者にそれを任せます。 NANDゲートは、基本的にAND演算の否定です。両方の入力が充電されている場合を除いて、すべてを通過させます。

nand

同様の特性を有する別のゲートは、NORゲートである。 このゲートは、NANDとは少し反対になります。なぜなら、これはさまざまな組み合わせで一緒につながれていると、他の多くのゲートと同等のものを構築するための基礎としても役立つからです。 それには、料金がない限り、すべての料金が停止されます。

nor

上記で説明した操作を複製するXORゲートがあります。

xor

通常の “==”演算子を使って2つの変数の間の等価性をテストするときと同じような等価ゲートがあります:

xnor

次に、私たちがカバーしてきた操作を行う基本的なゲートがあります:

and_or_not

では、これらのゲートのすべてで何ができますか? さて、私たちが議論してきたような別の操作を実行するために、それらを一緒にストリングすることができます。 誰かがこれをどうやって行うのかという2つの例の図を示します。

nand_makes_nor

nor_makes_nand

さて、そこには、論理ゲートの基礎とブール代数があります。 私が上で言及したように、この記事の範囲外であると考えられていた、非常に技術的で数学的なこの物にはSOOOOがはるかにあります。 論理ゲートはデータ記憶に使用することができ、CPUのデータバスに使用される3つの状態論理ゲートも存在する。 論理ゲートは、主にマイクロチップで処理ユニットを構築するために使用されます(コンピュータの仕組みを覚えていますか?)おそらく、今後はこれらの他のトピックについてさらに詳しく説明しますが、今のところ、私はこの記事があなたを始めさせるのに十分だと思います。

私はブール論理について学び、それを初歩的な方法で偶然に使う方法を学びました。 私のTRS-80 Color Computer II 16kの私の最初の「if文」から、私は論理論理を練習していて、それを知りませんでした。 だから私が論理ゲートについて学んだとき、彼らはつかむのがとても簡単でした。 私はあなたが論理ゲートを掴むのを手伝ってくれることを願っています。

あなたが私の執筆を感謝するなら、私のパトロンを通して私を支えてください。( パトロン )

photo credit: Tandy TRS 80 via photopin (license)

Liked it? Take a second to support kadar on Patreon!

あわせて読みたい

コメントを残す

%d人のブロガーが「いいね」をつけました。