使用Shift-Add算法来建造一个乘法器
现在你已经知道了如何使用累加器执行二进制加法,现在是使用累加器建造乘法器的时候了。
在二进制中,乘法可以通过两种方式完成。要执行X*Y,只需将X加进累加器Y次,也可以使用更有效的方法:Shift -Add。Shift-Add类似于用手乘十进制数的长乘法方法。在竖式乘法中(就是小学学的那个笔算多位数相乘的方法),把X乘以Y的每一位数字,然后把每一个结果相加在一起即为解(这里不需要多说)。
类似地,使用Shift-Add,扫描Y中的每个位,对于每个数值为1的位,都会将X加到累加器中一次。在每一步之后,左移X以便将其值增加到下一个位置。
Terraria中的乘法器(示例)如下:
正如你所看到的,这是我向你展示的第一个需要一个半砖驱动来操作的装置。这是因为Shift-Add方法需要对每一位都执行一次运算,在这种情况下需要执行8次。
从上到下的第一行表示Y值,第二行表示X值,底部的一行用来保存结果。当左下角开关被激活时,半砖驱动开启并激活产生一次移位,并在每个tick中执行一次操作。在每次操作中,通过右移位从Y值中读取单个位。如果来自Y的一个位的值为1,则黄线触发一组故障灯门,将X的当前值发送到累加器。然后,X值被左移。 请注意,在Y值的右移和X值的左移之间放置了一个额外的故障灯门。 这是为了确保X值在被左移之前会被发送到累加器。 然后,半砖驱动重复这8tick的整个过程,直至完成乘法运算。
使用与门建造多路复用器
在数字电路中,多路复用器是一种使用二进制输入端从一个长值中选择单个位的设备。
例如,可以使用多路复用器从一系列传送器中选择单个传送器以建造传送阵。 多路复用器也可用于将较小的二进制数转换为十进制单数,我将在以后的教程中展示。 这是一个多路复用器,它使用3位的输入端在8个不同的输出端之间进行选择:
当前,二进制输入端的值为0,所以使最底端的火把处于亮起状态。通过输入一个二进制数,其相应的火把将被多路复用器触发。多路复用器使用有分叉结构的与门装置工作。
每两个相邻的垂直的与门,其第一个与门最上面的逻辑灯为关闭状态,第二个与门的逻辑灯为开启状态(可见下图)。 拉动这相应两个与门所属的一列的开关会使这两个灯交换状态。每个与门也从其左边的列中接收一个输入信号。这样,你就可以控制信号从左到右的传输。
你可以很容易地复制和粘贴一个复用器,使它能控制的位数翻倍并且增加输入端的个数。
以上就是小编给大家带来的泰拉瑞亚电路装置技巧一览,希望能够帮助各位玩家。
更多内容:泰拉瑞亚Terraria专题泰拉瑞亚论坛