当前课程知识点:计算思维导论 >  第三单元 >  3.4 “九九归一”的加法运算 >  Video

返回《计算思维导论》慕课在线视频课程列表

Video在线视频

Video

下一节:Video

返回《计算思维导论》慕课在线视频列表

Video课程教案、知识点、字幕

大家好

这一节我们介绍

九九归一的加法运算

前面我们介绍了

用全加器实现的

二进制数加法器

从而实现了加法运算机器化

我们知道

算术运算除了加法

还有减法

乘法和除法

从自身的体会来说

它们一点也不比加法容易

甚至更复杂

那么

减法

乘法

除法运算

怎么办呢

让我们先从减法说起

二进制减法运算

怎么做呢

比如计算51减22

相当于

二进制110011减10110

手工计算是这样的

结果是11101

也就是十进制的29

对此 是不是像加法运算一样

先设计一个全加器

然后再设计一个多位数的减法器

答案是 NO

那怎么办呢

为更好地理解

科学家们超人的智慧

我们先引入几个概念

这就是原码 反码和补码

这几个概念并不复杂

让我们用实例

110011减10110

加以说明

首先 我们看到

被加数和加数的宽度是不一样的

前者是6位数

后者是5位数

需要拓展成相同的宽度

假定我们按7位来拓展

当然其他宽度也行

道理是一样的

那么不够七位

就在前面补零

这样结果就变成

0110011减0010110

我们称拓展后的

被加数和加数为真值

代表真正参与运算的数

再从数学角度看

我们可以把

减法式子写成加法的式子

也就是

正0110011加负0010110

大家看到了

被加数是正的

加数是负的

那么正号

负号

又怎么表示呢

为了统一和一致

数的符号也要数字化

也就是正数符号用0表示

负数符号用1表示

这样一来上述的式子

就变成了

00110011加上10010110

经过如此变换后的

被加数和加数

我们称之为机器数

直接用机器数相加

不可能得到正确的结果

而是需要转换成补码运算才行

那么 如何转换成补码呢

正数的原码

反码

补码

是一样的

也就是前面给出的机器数

因此

正110011它的补码

等于00110011

负数的原码

也和它的机器数一样

也就是

负10110等于10010110

负数的反码

就是在原码的基础上按位取反

也就是原来是1

现在改为0

原来是0的

现在改为1

但最左边的符号位保持不变

因此 负10110它的反码

就是11101001

那么 负数的补码呢

就是在其反码的基础上

再加一个1

因此负10110它的补码

就变成了11101010

好 被加数和加数的补码都有了

现在把这两个数

它的补码相加

看看结果如何

我们看

00110011加上11101010

结果等于多少呢

除最高位的进位以外

结果是00011101

这个值其实就是

十进制数的29

那么51减22的结果

确实是29

可我们刚刚做的是加法运算

减法运算

竟然可以转换成加法来做

是不是很神奇

补码运算生活中其实也有

比如现在是上午9点

你完全可以理解为

还差3小时就12点了

当然 你也可以理解为

从0点开始到现在

已经过去9个小时了

也就是说从钟表的角度来说

9等于12减3也等于12加9

因此 对于钟表来说

负3的补码就是9

不难理解吧

到此 减法运算不成问题了

那么 乘法运算怎么办呢

通过下面的实例

你不难看出

二进制数乘法运算的本质

是加法

比如1101011乘101

其实是两个被乘数错两位相加

因此 只要能做加法

也就能乘法了

那么 除法运算怎么办

道理其实差不多

除法运算的本质是减法

比如这个例子

而减法运算

前面已经讨论过

最终也变成加法运算

特别说明的是

对于计算机来说

求一个机器数的反码

补码

是一件非常容易的事情

通过补码运算

可以把减法运算变成加法运算

而乘法可以用加法来做

除法可以转变成减法

这样一来

加减乘除

四种算术运算九九归一了

显然

这对简化CPU的设计

非常有意义

CPU里面只要有一个加法器

就可以做算术运算了

因此 引入补码意义非同寻常

可以说是先辈们智慧的结晶

好 这一节就讲到这

谢谢大家

计算思维导论课程列表:

第一单元

-1.1 计算思维及其教育

--Video

第二单元

-2.1 计算是什么

--Video

-2.2 计算与自动计算

--Video

-2.3 计算机及其计算本质特征(I)

--Video

-2.4 计算机及计算的本质特征(II)

--Video

第三单元

-3.1 数的表示与模拟计算

--Video

-3.2 数的表示与数字计算

--Video

-3.3 二进制加法运算的机器化

--Video

-3.4 “九九归一”的加法运算

--Video

-3.5 二进制之优越性及问题与代价

--Video

第四单元

-4.1 从数学危机到图灵机

--Video

-4.2 图灵机的计算能力

--Video

-4.3 什么问题都能计算吗?

--Video

-4.4 冯•诺依曼机及其发展与演化

--Video

-4.5 从算盘到图灵机——机械计算的本质

--Video

-4.6 电子计算机——透过现象看本质

--Video

第五单元

-5.1 思维可机械计算吗(I)

--Video

-5.2 思维可机械计算吗(II)

--Video

第六单元

-6.1 量子理论

--Video

-6.2 量子计算机

--Video

第七单元

-7.1 人类求解问题之过程

--Video

-7.2 基于计算(机)的问题求解过程

--Video

-7.3 面向过程的结构化设计方法学

--Video

-7.4 面向对象之方法学

--Video

-7.5 面向对象技术

--Video

-7.6 抽象

--Video

-7.7 计算学科中的抽象

--Video

-7.8 时间与空间及其相互转换

--Video

-7.9 技术层面的其他方法学

--Video

-7.10 认知层面的其他方法学

--Video

第八单元

-8.1 算法与程序

--Video

-8.2 算法设计方法——枚举

--Video

-8.3 算法设计方法——递推

--Video

-8.4 算法设计方法——递归

--Video

-8.5 算法设计方法——分治

--Video

-8.6 算法设计方法——仿生

--Video

第九单元

-9.1 机器间的通信方式

--Video

-9.2 数据转发方法

--Video

-9.3 网络分层体系结构

--Video

-9.4 有趣的对称加密技术

--Video

-9.5 难解的非对称加密技术

--Video

-9.6 数字签名及其应用

--Video

-9.7 从自然智能到人工智能

--Video

-9.8 符号主义的基本思想

--Video

-9.9 连接主义Ⅰ

--Video

-9.10 连接主义Ⅱ

--Video

-9.11 行为主义的基本思想

--Video

-9.12 机器翻译的愿景与困难

--Video

-9.13 峰回路转的自然语言处理

--Video

-9.14 信息传输中的问题与挑战

--Video

-9.15 重复传输与冗余编码

--Video

-9.16 校验与校验和

--Video

-9.18 自纠错技术及应用

--Video

-9.19 两种简单的数据压缩方法

--Video

-9.20 哈夫曼编码

--Video

-9.21 数据压缩极限与LZ压缩方法

--Video

-9.22 大海捞针的搜索引擎

--Video

-9.23 网页排序方法(PageRank)

--Video

第十单元

-10.1 计算文化

--Video

期末考试

-期末考试--作业

Video笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。