我在Minecraft的红石电路中尝试制作了一个加法器

你好

嗨,你好。

这篇文章是2022年SLP KBIT圣诞日历的第19天的文章。这次根据标题,我们使用Minecraft中实施的红石电路制作了一台计算机(4位加法器)。虽然与编程无关,但偶尔阅读一下也是不错的选择,希望您可以把它当作一个有趣的段子(顺便说一句,正在学习逻辑电路的一年级学生们绝对不能错过!快来看吧!)

二进制的加法(半加器)

(限于页面篇幅)不详细解释,请简要说明

0 + 0 = 00
0 + 1 = 01
1 + 0 = 01
1 + 1 = 10

这是对二进制数进行加法运算(无进位)。在这里,让我们关注个位数。

入力値A   入力値B   1の位
   0        0        0
   0        1        1
   1        0        1
   1        1        0

顺便提一下,这种表被称为真值表。

来看看这个表,你会想到什么呢?
是的,是“异或运算”对吧。
也就是说,“个位数可以用输入值的异或运算来表示”。

接下来,我们来关注一下十位数字。

入力値A   入力値B   2の位
   0        0        0
   0        1        0
   1        0        0
   1        1        1

さあ、この表を見て、何を思い浮かぶでしょうか。
そう、「AND演算」ですね。
つまり
「2の位は入力値のAND演算で表現できる」
ということです。

01_hankasan2.png

对于二进制的加法(全加器)进行重述

通过组合上述的XOR电路和AND电路,可以实际上构建一个计算机(半加器),但半加器无法进行进位操作。

所以现在让我们考虑一下能够进行高位相加的“全加器”。

0 + 0 + 0 = 00
0 + 0 + 1 = 01
0 + 1 + 0 = 01
0 + 1 + 1 = 10
1 + 0 + 0 = 01
1 + 0 + 1 = 10
1 + 1 + 0 = 10
1 + 1 + 1 = 11

我花了很长时间写了这个,但简单来说,输入的结果是

00
01
10
11

我会选择其中的四个。

入力値の1の個数が
合計0個 => 00
合計1個 => 01
合計2個 => 10
合計3個 => 11

在中文中,这句话可以被翻译为”也可以这样理解。要实现这个全加器,如果考虑到列竖式相加的方式,会更加轻松。”

首先,每个输入值的变量

入力値
X + Y + C = ???

とし、先に
X + Y
演算を行います。

これは先ほどの半加算器で演算できますね。

接下来,将对X + Y的值与C进行加法运算。

这也最终是通过使用半加器来实现。

つまり、全加算器は半加算器を2つ用いることで作成可能であるのです。

此外,X与Y的可能取值是

00
01
10

这是三个选项。

在这种情况下,我们将X+Y的个位数和C的值作为下一个半加器的输入。
同样地进行加法计算。

00
01
10

以下是这三个结果。
由于 C 的输入值是0或1,所以X + Y 的输出数量为3个(00、01、10)。因此,最终结果的数量是2 × 3 = 6个。以下是这些结果的总结。

「」の中だけを演算する。その演算結果は「」の中に表現する
(X+Y) +  C  = 左辺の「」の演算結果を右辺の「」の中に表現
左辺の X+Y の1の位は「」で囲んでいる。
(1の位のみを演算するから)

0「0」+「0」= 0「00」 -> 全体的に00になればうれしい
0「0」+「1」= 0「01」 -> 全体的に01になればうれしい

0「1」+「0」= 0「01」 -> 全体的に01になればうれしい
0「1」+「1」= 0「10」 -> 全体的に10になればうれしい

1「0」+「0」= 1「00」 -> 全体的に10になればうれしい
1「0」+「1」= 1「10」 -> 全体的に11になればうれしい

在右侧的值下,将单位上的2和括号中的2进行比较,并输出最终的值。
这与我们进行竖式计算时进位的思维方式非常相似。
将上述运算结果转化为真值表后可以看到

X+Yの2の位   (X+Y)+Cの2の位   最終的な2の位
    0                0             0
    0                1             1
    1                0             1
    1                1             1

来,看着这个表,你会想到什么呢?
对,是”OR运算”对吧。
也就是说,
“最终的个位数可以通过每个个位数的OR运算来表示”
这就是意思。

02_fulladder.png

增加更多的项目(全加器的组合)。

03_fulladder2.png

Minecraft游戏中的电路运作

02_on.png
04noton.png
0511.png

通过组合OR回路和NOT回路实现。

0511.png
07xor.png
↓ 0 + 0 = 00
08halfadder.png
↓ 0 + 1 = 01
0801.png
↓ 1 + 0 = 01
0810.png
↓ 1 + 1 = 10
0811.png
↓ 0 + 0 + 0 = 00 (XOR回路が違うのは触れないでっ)
09full000.png
↓ 0 + 0 + 1 = 01
09001.png
↓ 0 + 1 + 0 = 01
09010.png
↓ 1 + 1 + 1 = 11
09111.png

以下是耗费了像个傻子一样的时间制作的4位加法器!!!!!!

10.png
5 + 9 = 14
つまり
0101 + 1001 = 01110
1014.png
8 + 2 = 10
つまり
0100 + 0010 = 00110
1010.png

做到了啊啊啊啊啊啊啊啊啊啊啊!!!!!

我累了。

编码器和解码器

11.png

想法

其实呢,我本来还想做减法和乘除法,不仅仅只有加法。但是,这个太难了。我感觉自己快要疯了。我也想制作一个有显示屏的,更像是电脑的东西,但是我没有那种坚不可摧的心。

如果在输入框中也安装了灯泡,就能清楚地看到输入了哪个数字呢。

顺便说一下,YouTube上也有人使用RD电路来实现伪量子计算机,真是太厉害了呢。

总结

如果你没有强大的心灵,我不建议在Minecraft中建造计算机。
除非你拥有坚强的心智,否则你的心灵会崩溃。
请一定要过健康的游戏生活。

大家会如何度过年末呢?我非常期待在Abema上于12月30日播出的《轻松露营△》第二季一次性连续放送。这部作品每年都会一次性播放,我每年都会观看。大家也来看吧。顺便提一下,《轻松露营△》第一季的放送已经结束了。

祝你新年快乐!

附言:这篇文章在25日的时候勉强赶不上,真是可惜啊啊啊啊啊!

广告
将在 10 秒后关闭
bannerAds