![v2-2da0583668808f56179631347f724005_1440w.jpg?source=172ae18b](http://img-02.proxy.5ce.com/view/image?&type=2&guid=5fce06af-f02f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-2da0583668808f56179631347f724005_1440w.jpg?source=172ae18b)
前一篇:书香讲 CS 之四(计算机中的二进制)
ALU 介绍
上次我们讲到了计算机如何表示和存储数字以及文字,但计算机真正的目标是进行计算、有意义地处理数字,比如把两个数字相加等等。这些事是由计算机的一个叫“算术逻辑单元(ALU)”的部件来处理的。ALU 是计算机的大脑,也是现代计算机的基石,基本上计算机所有的操作运算都会用到它。
ALU 有2单元,1个算术单元,1个逻辑单元,所以接下来分两块来分别介绍它们。
![v2-7943a50d0e90546b1d5169ef7d552947_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=5fce06af-f02f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-7943a50d0e90546b1d5169ef7d552947_b.jpg)
算术单元
算数单元负责计算机里所有的数字操作,比如加减法等等。要完成“将两个数相加”这个操作,需要制造出新的部件“加法器”,我们会用之前抽象出的“逻辑门”——与门、或门、非门、异或门——来进行更高层次地抽象,组装成我们想要的部件!
半加器
最简单的加法电路,就是拿两个比特(0或1)加在一起。它会有2个输入,以及1个输出:两个输入数字的和。
我们的输入和输出都只有1个比特,所以会有以下几种情形出现:
- 0+0=0
- 0+1=1
- 1+0=0
- 1+1=2=10(二进制)
注意,在二进制里没有“2”这个数字,计算出来的结果需要进位,表示为“10”。发现了什么?这4个加法结果的末尾和之前讲的“异或门”的输入输出结果一模一样!