英雄联盟在哪可以投注

ALU_My Blogs-CSDN博客_alu

witty_pupil:没有看懂你说的盘片和盘面,如果说一个盘片正反面都可以涂上磁性物质。那么4个盘片就有8个盘面了。而你的配图却只是4个盘面,是为什么

算术逻辑单元(Arithmetic&logical Unit)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分。

宏观上比喻,就是一个能做整数加减法的计算器。注意,这里有两个限制,一是整数,二是只能做加减法(当然,本质上,减法也是一种加法)。

那怎么做乘除运算呢?答案就是,不断地加(或减)。那这样不是很耗时间?对的,为此,可以做出更昂贵的部件(更多的逻辑门)实现乘除运算,当然,这不在本章的讨论范围内。

首先,我们来讨论最简单的只有 1 位二进制加法运算。这种运算只有四种可能:

可以发现,这和异或运算很相像,至少前三个都对了,而第四个也对了一半(1 ⊕ 1 = 0)。所以只要对异或的逻辑门(Logic Gate)进行一定改造,即可满足只有 1 位二进制加法运算。

对于1 + 1 = 10,我们需要进位(英语中进位称为 carry)。因为只有 1 & 1 等于 1,因此我们可以增加一个And Gate(与门)来实现进位。这样,我们就有了两个输出位,如下图,CARRY 和 SUM。

我们对这个特殊的逻辑电路进行一次抽象,称之为半加器(Half Adder)【给定两个输入,给出两个输出】。

显然,半加器最多位运算是 1 + 1,如果我们要实现更多位的运算呢?如 1 + 1 + 1。我们可以使用多个半加器。如下图,将一个半加器的输出结果作为另一个半加器的输入结果。【注意,下图中最左的 C 为一个新的输入的数,而半加器右上角的 C 为 Carry 位的数。】

我们对上面这个特殊的逻辑电路进行一次抽象,称之为全加器(Full Adder)【给定三个输入,给出两个输出】。

现在,我们有了半加器和全加器,我们可以做一些很酷的事情了,比如 8 位加法器。

首先取A0A_0A0和B0B_0B0,用一个半加器相加,拿到SUM位和CARRY位,保存SUM位,用CARRY位和A1A_1A1和B1B_1B1相加,因为这里有三个输入,所以用到了全加器。以此类推。

如果第 9 位有进位,如 11111111 + 00000001 = 100000000。这将意味着容纳不下新的位数(8 个座位怎么坐 9 个人呢),由此部分数据遭到丢失,这称之为“溢出(Overflow)”。

如果想避免溢出,需要增加更多的全加器,当然,这需要更多代价,金钱和时间(因为进位需要时间)。

对于上面这个 8 位加法器,我们可以再进行一次抽象(这样我们可以专注于怎么思考,而不是怎么实现),用一个大 V 表示,如下图:

除了有 INPUT、OPERATION CODE、OUTPUT,我们还可以设置一个标志位(FLAG),这很有用,比如 OVERFLOW 可以知道本次运算是否溢出,ZERO 为 TRUE,则表示参与运算的两数相等,NEGATIVE 可以比较参与运算的两个数的大小。

事实上,1 的储存通过下图实现,即:一个OR门,再将OR门的输出作为一边的输入。

arithmetic and logic unit 算术逻辑单元,简称

,是计算机的数学大脑,也就是计算机里负责运算的组件,比如把两个数相加。基本其他的组件都用到了

,它有两个 单元 一个算术单元,一个逻辑单元算术单元算术单元,它主要负责计算机里的所有数字操作,比如加减法,自增自减等。接下来,使用最简单的加法电路,即两个bit相加,bit是0或者1,来看看它是怎么设计与运行的……

发表评论

电子邮件地址不会被公开。 必填项已用*标注