广告

《图灵完备》游戏攻略第二章:算术运算和存储器——半加器

《图灵完备 Turing Complete》游戏攻略保姆级详解。

第二章:算术运算和存储器

半加器

布尔值

从本关开始的大部分关卡,我们很有可能把红色叫做0,把绿色叫做1。
  • 布尔值是“真(True)”或“假(False)”中的一个。
你可以简单的这样理解“布尔值”:
  • 真 == True == 1 == 绿
  • 假 == False == 0 == 红

当我们在说“1”和“绿”时,其实我们说的是同一个东西。

如果你还不理解什么是布尔值,请点击这里跳转到百度百科查看,不用了解的太深入。

总和、进位

我们在学习二进制时学习过:
  • 总和(SUM)
  • 进位(CAR)
关卡解析

我们有两个输入端,两个输出端,但本关比较简单。先观察:

可以分析出这关要让我们做什么:
  • A:若都是0,输出0
  • B:若有且只有1个1,在总和输出1
  • C:若有2个1,在进位输出1

首先我们发现,如果只看A和B,可以总结为“如果输入不同,就在总和输出1”,这显然是异或门的性质,因此我们先这样接入一个异或门:

接下来,然后来看C,我们只需要在两个输入同时为1时,输出到进位即可:

本关最终答案

半加器

我们本关中做出的电路,整体来看,叫做半加器。半加器是指对两个输入数据位相加,输出一个结果位(SUM)和进位(CAR),没有进位输入的加法器电路。

延迟线

关卡解析

这关获得了延迟线,可以把数据延迟一刻再输出到下一段电路。目标是延迟两刻,其实只要在一条线里加两个延迟线即可:

本关最终答案



加倍

字节

字节,单位比特(bit),1bit=1个8位数据=8个1位数据。
你可以简单的这样认为:1个8位数据=1个8位的二进制数

8位分线器、8位集线器

本关我们获得了8位分线器、8位集线器这两个元件。
  • 8位分线器:将1个8位数据拆解为8个1位数据
  • 8位集线器:将8个1位数据集合为1个8位数据

举个例子:

根据我们之前讲过的十进制转二进制,8位分线器把90这个数字拆解为2、8、16、64,那么这4个数字就是绿色,其他数字就是红色。八位集线器会把这些数字再合到一起,再变成90。

关卡解析

本关我们要制作一个将数字翻倍的电路。其实非常简单,只要把每个1位数据都×2即可。本来应该接2的咱们接4,本来应该接4的咱们接8,每个都翻倍,数据就翻倍了。

本关最终答案

全加器

关卡解析

本关几乎和“信号计数”那关的1、2、3完全一样,只是把红、绿换成了0、1。

本关和半加器类似,只不过输入变成了三个。我们观察表格,找规律,得出要求:
  • 没有1 不输出1
  • 1个1 在总和输出1
  • 2个1 在进位输出1
  • 3个1 在总和和进位都输出1
这四种情况其实分别对应二进制里的 0、1、10、11 。
首先,第二条要求可以直接照搬我们做过好几次的电路,还记得吗?
  • 某些情况下,“判断输入是否不同”==“判断1是不是奇数个”

2号要求处理完毕,现在我们处理3号要求。根据我们在“信号计数”那关的经验,当我们做好3号要求时,4号要求应该会自动做好,因为4号要求其实是2号要求和3号要求的叠加。

如何判断是否有2个1,我们也学过。两两进行与门判断,然后再用或门连接:

本关最终答案
我们发现,要求4真的自动做好了。这就是本关的电路。

奇变偶不变

循环依赖白名单

我们之前学习过,在本游戏中,循环依赖是不被允许的。但是延迟线的加入可以解决这个问题。

游戏中的方形引脚,不会造成循环依赖,因为它不会影响同一刻的输出值。

关卡解析

本关要求我们制作一个“再偶数刻输出0,在奇数刻输出1”的电路。

观察真值表发现,本关的输入全是0,因此最终结果与输入毫无关系,所以实际上我们可以直接将输入端抛弃,这是一个障眼法。我们可以这样制作:

本关最终答案
现在我们一刻一刻来看这个循环:
  • 第0刻:黄色线灭,绿色线亮。延迟线存储了信号,将在下一刻放出
  • 第1刻:延迟线存储的信号被放出,黄色线亮,绿色线因为非门灭掉
  • 第2刻:同第1刻...




1位开关

开关(S)

只有当上方被激活时,右方才能有反应,否则无论左侧输输入什么,输出都是0。

关卡解析

本关我们要制作一个异或门(XOR),也就是当两边不一样就输出1。但是我们的材料有限,只能用2个非门和2个开关。我们将1加上非门作为开关,2作为通向输出的线路:

这时我们会发现:
  • 当1开启时,输出一定为0
  • 当1关闭时,输出2直接影响输出结果
此时我们还差两种被遗漏了,也就是:
  • 当2开启时,输出一定为0
  • 当2关闭时,输出1直接影响输出结果

这样才是一个完整的异或门。我们需要将这个电路翻倍,也就是将1加上非门作为开关,2作为通向输出的线路:

然后将两个电路拼在一起,注意不要插错孔:

本关最终答案

短路处理

我们仔细看一下这个电路的最右侧。在我们之前的关卡中,如果这样连接会显示短路,但是本关并不会。请仔细阅读本关关卡说明第一页,弄清楚这是为什么!

1位取反器

观察

观察本关背景,我们可以看到有很多水滴型的图案,它们由分型构成。而分型,就意味着无限。因此,本关背景所暗示的是“无限”。它们就像是一朵朵绽放的花朵,象征着无限的生命力。它们又像是一个个的灵魂,象征着死亡。本关,是生命与死亡的无限碰撞,是矛盾的产生与矛盾的化解,是无限复杂的宇宙,而无限与本关毫无关联,实际上这个背景图也与本关毫无关联(⊙x⊙;)

关卡解析

让我们来看一眼真值表:

怎么这么眼熟?这不就是异或门吗?!恭喜过关。

本关最终答案

1位取反器

通过本关我们得知,背景可以深刻的影响人类认知(不是

异或门其实也可以被当作一个取反器,你可以把它理解成是一个可以开启或关闭的非门。你可以把一端作为要输出的数据,那么另一端就可以用于去决定是否要取反。




8位或

按位或运算

按位或运算符是双目运算符。其功能是参与运算的两数各对应的二进位相或。
法则:只要对应的2个二进位有一个为1时,结果位就为1 。

关卡解析

理解了按位或运算的意思,本关就很简单了。按照 按位或运算 法则,我们将2个8位八位线,拆成16个1位线。把对应的位进行 逻辑或运算 然后再放入集线器。

以上是用1举个例子,接下来把剩下的14个都像这样操作:

本关最终答案

8位非

关卡解析

本关异常简单,解题方法就写在下面。

本关最终答案

8位非

性质:运算前+运算后=255 ,举个例子:

28+227=255
反码
把一个二进制数的每位都反转,例如 10101010 和 01010101 互为反码。其实这一关就是在获取一个二进制数的反码,这种方式我们以后还会用到。

8位加法器

关卡解析

我们先将输入的2个8位数据拆分为16个1位数据,然后将他们放入全加器进行相加操作,再输出至集线器:

这样我们就解决了第0位,现在我们要解决第1位。根据我们之前讲过的二进制原理,分线器上2个写着“2”的输入端,实际上是写着“1”的位的进位。那么下面这三张图是,画红圈的三个点,实际上应该是在同一位上的:

  • 请确保你理解了。

所以说,我们只要把这三个同位的点加起来,再输出到集线器的“2”即可:

接下来,三个画黄圈的点,就又是在一位上的了。我们就一直这样制作下去,一直做到不能再做,我们一共需要8个全加器:

最后一个全加器右下角的点又是一个进位,是第九位,超出了8位数据,我们只要把它连到CAR上就好:

本关最终答案

8位加法器

我们本关的整个电路构成了一个8位加法器,它可以对输入的两个数据求和。



负数

关卡解析

在本关中你会学习使用补码表示法表示负数。本关又是类似小游戏,玩着玩着你就能发现所有奥妙。

在已经学习过二进制的前提下,本关不需要在过多做解释,注意关卡结束时的要点总结即可:

补码

把一个二进制数的反码+1就是补码,例如 10101010 的反码是 01010101,再把 01010101+1 得 1010110。1010110就是10101010的补码。

相反数

一个二进制数的相反数其实就是它的补码。例如,10101010的相反数是1010110。

数据选择器

关卡解析
分析本关问题,可以得出是需要我们制作一个这样的电路:
  • 选通器为红,将A路输出
  • 选通器为绿,将B路输出

首先我们在选通器上做两条路,这两条路相反,不是A亮就是B亮:

然后放置开关,注意必须要放8位开关:

连接即可,注意不要弄错A和B:

本关最终答案

相反数

关卡解析
我们倒着来推:
  1. 如何获取相反数?我们在“负数”里讲过:“一个二进制数的相反数其实就是它的补码”
  2. 如何获取补码?我们在“负数”里讲过:“把一个二进制数的反码+1就是补码”
  3. 如何获取反码?我们在“8位非”里讲过:“把一个二进制数的每位都反转就是反码”

因此,我们首先把每一位都反转,获取反码:

然后,我们只要将这个反码+1,就是补码,而补码就是它的相反数。
胜利在望了!可是如何获取1呢?我们在“半加器”里讲过:
  • 真 == True == 1 == 绿

也就是说,我们只要使用“高电平”元件,当作1即可。使用8位加法器,将刚才获得的反码,与高电平的1进行相加,即可获得补码,也就是相反数:

本关最终答案

题外话

之前还行,玩到这突然感觉这个游戏门槛并不低。光是玩这一关,我读各种资料就至少读了一个半小时,最后搭建只花了一分多钟。我感觉如果不知道“一个二进制的相反数其实就是它的补码”这个原理,估计想破脑袋也想不出来......

总线

关卡解析

我们将4条蓝线汇集到一条上,这条线叫做“总线”。总线的左侧,我们通过两个8位开关,控制应该让哪个数据保持在总线上。总线的右侧,我们通过两个8位开关,控制数据会进入哪个输出端。

接下来做的都是以前做过的。每个1位输入端控制两个开关,并且一次只能有一个开关开启,因此我们每组里添加一个非门保证始终一开一闭,注意不要连错:

本关最终答案



《图灵完备 Turing Complete》游戏攻略保姆级详解

你可以通过《图灵完备》这款游戏,学习处理器架构,搭建自己的伟大作品。游戏闯关模式的最终目标是搭建一台可以运行的计算机。我将会开始更新这款游戏的攻略,详细解析每一关的通关思路,并且讲解背后的原理。


以下三章为《图灵完备 Turing Complete》游戏手把手教程(教程原创为知乎:淘气喵w,特此说明)
第一章:基础逻辑电路

第二章:算术运算和存储器

第三章:处理器架构

24小时热点

Blockchain, Litecoin Shop

Blockchain The Litecoin block ...

132222

BYAC

ACC2-ACChain-资产收集链

货币简介 AC ...

50039

盒盒数字藏品

MED-MediBloc [QRC20]-中号区块

货币简介 Me ...

68475

盒盒数字藏品

KAN, BitKan 代币

KAN- 简介详情 项目团队来自币看BITKAN ...

143916

量子链钱包

IPC-IPChain-知产链

货币简介 IP ...

56480

DOT,波卡币

Payment Gateways , Litecoin (LTC)

Payment Gateways ...

138274

CCFOX

什么是区块链,区块链技术有哪些特点和功能

区块链技术也被人们称作为分布式账本技术,区块链的实质其实就是 ...

10345

波场区块链浏览器

区块链技术的五大特点及其革命性意义

近年来,区块链技术的崛起引发了全社会的广泛关注。作为一种颠覆 ...

528

波场区块链浏览器

BitPay用支付宝充值的步骤

数字货币不断的发展,尤其比特币被越来越多的人进行投资认可,使 ...

4746

波场区块链浏览器

如何获得比特币钱包?必看的注册流程!

如何获得比特币钱包?必看的注册流程! 想要获得比特币钱包可 ...

14832

波场区块链浏览器
广告

热点专题

区块链网是什么

中国区块链价值评价中心 中国区块链价值评价中心于2 ...

5268634

知信链

元界(Metaverse)

元界(Metaverse)是一个去中心化的公有区块链项目,元 ...

966231

WEEX数字货币

BTC123

BTC123(www.btc123.com)成立于2011年 ...

758486

Kusama 测试网

DAC币——达芬奇Davinci Coin

达芬奇项目的平台是通过叫作"Dchain"的自身区块链把可以 ...

696739

Mechanism Capital

Bitfinex(香港B网)

Bitfinex交易平台目前仍处于试运营阶段,该平台由iFi ...

674220

Hi元宇宙

MCO币

MCO,前为Monaco,朝着让每个钱包都载有加密货币的愿景 ...

663030

第九空间

熊猫矿机(PandaMiner)

熊猫矿机(PandaMiner),企业文化背景为:其一,熊猫 ...

644234

金融界区块链频道

中币网zb——中币交易所

ZB.com是一个全球化的数字货币交易所,目前已获得泰国和迪 ...

626548

中币交易所

陈景润证明哥德巴赫猜想1+2的论文

大偶数表为一个素数及一个不超过二个素数的乘积之和 。 本 ...

617778

鲸探

最全传销名单,请告诉家人朋友,别让他们上当受骗后赔到血本无归

因为互联网的发展,让现代传销具备了更强的隐蔽性,更让社会经验 ...

539355

律动 BlockBeats