当前课程知识点:微机原理与接口技术 >  第1周 微型计算机基础概论 >  第5讲 计算机中数的表示与运算 >  数的表示与运算

返回《微机原理与接口技术》慕课在线视频课程列表

数的表示与运算在线视频

数的表示与运算

下一节:基本逻辑运算与逻辑门

返回《微机原理与接口技术》慕课在线视频列表

数的表示与运算课程教案、知识点、字幕

最后我们要说一下

有一个特殊的数

这个数作为八位字长

就是最高位是1

作为十六位字长嘛

就是最后

还是最高位是1

后面是十五个0

依次类推

这个数

作为无符号数

八为无符号数的话

它等于多少?

很容易得出来

最高位这个权值是2的7次方

所以

它等于128

这个没有任何问题

那么 对于

原码

大家已经知道

最高位是符号位

这是负的

那么是后面是绝对值

所以这个数

如果是原码的话

那么它是负0

如果是反码

它等于多少

我们永远记住

反码

只有原码的定义是

符号位加绝对值

反码和补码呢?

它们都是

原码基础上的

一种变换

所以当这个数

是负数的时候

反码和补码

都不等于

符号位加绝对值

也就是说符号位

还是符号位

但是后边的数值部分

已经是原码基础上的

一种变换

所以

它不再是绝对值的意思了

所以这个数

现在10000000

这个如果是反码的话

怎么样得到它的绝对值呢?

是要对这个数

再取反码

也就是把它各位取过来

反向过来

所以

反向过来嘛

就是8个1了

所以这个数

把符号位去掉

那就是2的7次方减1

所以如果它是反码的话

这个数等于

-127

这些

都有很多的道理

但是在补码中

我们定义它为-128

没有太多的道理

就是说也可能是

我们原码有正0负0

反码也有正0负0

而补码呢?

正0 负0都是一个0

都大家都归一了

所以就

相对来讲

空出一个位置

这个位置就给了它

就是负的一半28

如果一定要追根溯源

大家可以认为

它如果是无符号数的话

是128

这样得出来的

这是一个特殊的数

大家后面还会用到

所以我们今天

把它拿出来说一下

现在

我们介绍完了有关

无符号数

和有符号数

它们的表示

以及它们的运算的过程

下边我们要

提一个问题

因为计算机中

不管是早期的计算机

还是今天的计算机

不论是微型计算机

还是大型计算机

它都不可能

去处理无穷的数据

它处理的数据

都是有限的

也就是它的

一次处理的数据

和它的字长

是一致的

它的字长

也就是说它能够并行处理的

二进制的位数

我们现在课件上

举的这些例子

全部都是八位字长

那么

对于你今天的计算机

也都是64位的

也就是说它能够

同时处理64位数

当然它比

处理8位数的效率

已经高的多了

因为如果我们

就是8位的计算机

要去处理两个64位数

我们要处理8次

才能处理完

就是两个64位相加

如果用8位计算机来加

我们要加8次

才能把这两个数加完

但是64位机

我们得加一次就加完

但是

不管它是8位还是64位

它总归它是有个极限 对吧

所以它有一个

能力的一个边界

计算机的能力

首先它是不能处理

我们无法

设计出算法的问题

这个是图灵模型

它所证明的问题

第二

它无法处理无穷的问题

所以

它能够处理的数据

都是

字长都是在有限的范围内

计算机能够表示的数

我们也称为表数

这个表数范围

或者它表示数的范围

它是有限的

这个

表数范围

刚才我们已经说了

它受到字长的限制

不论是8位的

还是16位的

它这个都是

16位的字长

就是64位的机器

它的字长是64位

所以它总归

它能够处理的

也就是64位数

所以表数范围受到

它的字长的限制

比如对于8位机

它最大能够表示的

就是八个1

这八个1是多少呢?

就是255

对于无符号数是这样

对于有符号数

我们刚才说

正数

就是最高位是0

剩下的七个1

就是正的127

负数

我们刚才已经定义了

刚才那个10000000 对吧

就是负的128

这是对于八位数来讲

十六位数

以此类推

大家可以去查阅一下资料

这些

不管是8位

16位

32位还是64位

总而言之

它的字长

决定了它能够

表达数据的范围的能力

这就是

计算机的能力的

一个边界

当你超出了

你的运算结果超出了

这样一个能力边界

就像刚才我们说的

8个1又加了1

这种时候会怎么样呢?

我们刚才说

因为那个1

是在更高位了

挤到我们有限的

8位字长这样一个范围

挤到外头去了

所以我们看不到了

那个挤到外头的

就是

就相当于你煮饭

那个饭已经

铺到锅外面去了

我们就叫做溢出

所以当运算结果

超出了我们这个

这个字长的范围

也就是说我们超出了

我们计算机的表示数的范围

表数范围的时候

我们就产生溢出了

溢出就有可能

带来一种错误

下面我们来

解决说一下这个问题

我们先来说一下无符号数

无符号数

是我们刚才说的里面

这个一个数里面

所有的0和1

都是有意义的数据

对于八位无符号数

最大的数就是

八位1

最小的数

就是八个0

那么所以

无符号数的表述范围

我们可以用这样一个

通用的表达式来表述

这里的n

表示是字长

就是说 我们看

如果这个n等于8

就是八位字长的话

这个八位无符号数

最小数是0

最大数是多少呢?

就是2的8次方减1

就是255

那么我们计算机

怎么知道

无符号数是溢出了

还是没有溢出呢?

计算机实际上不知道

它只是说

如果

8个1

再加1

对于8位机来讲

如果8个1再加1

怎么办呢?

它把最高进去的

进掉的那一个位

它会放在一个特有的地方

那么到底这个1

是溢出的

还是有用的

那个是需要程序员

通过语言去处理的

所以

但是它一定要反映给你

反映给你

它会用它特殊的一种方式

我们下一章就会讲到了

但是不管怎么样

如果出现这种情况

我们称为溢出

溢出怎么样

就会那个1

就会出现在那样一个地方

或者说怎么样就溢出了呢?

无符号数

溢出的判断方法

或者说

计算机判断它的方法

是最高位

向前有进位

或者减法有借位

大家

先注意一下

我在这里说的

是无符号数

加减运算的溢出方法

我们没有说乘除运算

有关乘除

我们后边来给大家解释

所以有符号数

无符号数

加减运算是不是溢出

它的判断方法

就是最高位

向前有没有进位

或者有借位

对于8位数来讲

就是第七位向更高位

有没有进位

或者借位

我们用一个例子

来说一下

假设这是我们八个1

再加1

最后得到的结果是这个

这就是最高位

就是第七位

向更高位有进位了

进掉的这一个位

我们就说是溢出了

这个溢出的位

超出了

8位有效的字长

在有效字长的范围内

我们看到的是8个1

所以

我们就说

8个1是255

255加1

我们结果得出0

这个结果显然是不对的

那么

你说我要

我就要算255+1怎么办

你去想办法

把那个进掉的那个1

就是溢出的那个1

要把它捞回来

不捞回来

这结果就错了

怎么捞回来?

我们后边课程

再去给大家介绍

那么对于有符号数

我们因为刚才说

我们有符号数

有三种表示方法

所以原码 反码和补码

它的表数范围

是不一样的

对于原码和反码

它的表数范围是这样

而对于补码呢?

因为刚才我们说了

补码的最小值

8位补码最小值

是-128

最大值是+127

所以补码的表数范围

通用的表达

可以是这样的一个表示方法

对于8位二进制数

我们

因为我们这门课

更多的用到是8位和16位

所以16位我在这里

就不再打出来了

大家自己可以去把它算一下

8位有符号数

它的表示范围

是这样子的一个范围

我们特意的

把补码的表数范围

用红颜色表述出来

因为未来

我们说

默认在计算机中

处理的数据

都是补码的形式

就是有符号数

都是补码的形式

所以它的表数范围

都是用这样子的一个表数范围

来描述

那么

因为无符号数

和有符号数

它的表数范围不一样

所以

它判断是不是溢出的方法

也就不一样

对于符号数

判断是不是溢出

我们要用双位

来表示

刚才我们说

有符号数

无符号数

它的是不是溢出

是用最高位向前

有没有进位

就是说一位来

最高这一位

来表述它是不是溢出

而有符号数

因为它的

表数范围不同

所以它是不是溢出

我们用最高两位

它的进位

或者借位状态

来描述它们

它的溢出方法

是这样

就是说最高位

和次高位这两位

它们的进位状态

或者说借位状态

不一样的时候

那么就溢出了

一样的时候

就没有溢出

所以我们用它们的

这种异或关系来表示

异或的意思就是

相同为0

相异为1 对吧

就是进位状态

都一样

就是都有进位

或者都没有进位

那么它们的异或

这种状态的异或就等于0

也就是进位状态相同

那么这个时候

就没有溢出

如果进位状态

一个有进位

一个没进位

那么它就溢出

这个是有符号数

是不是溢出的

一种判断方式

对于 我们

我们现在都说的是

加减运算

对于乘除运算

我们为什么没有说呢?

是因为

乘法运算

根本不牵扯

溢出问题

因为 我们

后边大家会知道

两个8位数相乘

结果16位

两个16位相乘

结果会变成32位

所以

它不出现这个溢出的问题

而除法的溢出

不是用这样子的方法来

来描述的

而是通过

一种叫做

中断的方式

来描述的

就是你的除法

溢出的时候

会引起系统

弹出一个

除数为0的

中断请求

那么这种概念

这里说了好几个名词

大家都还不太清楚

我们后边就会讲到它了

讲到这一点

所以

除法的溢出的方法

不是通过这样的方法

来反映的

而是通过

中断的方式

来反映给程序员的

而乘法

是没有溢出问题

所以我们现在

刚才说的这种

溢出的判断

针对的都是

加减运算的判断

我们

也同样做一个例子

现在假设

有这么一个X和Y

我们不管它的性质

我们现在就是

从已经到最底层

就是二进制

硬连逻辑这个层面上

我们大家就看

这样两个二进制数的求和

比如现在我们做X+Y

相加的结果

我们看看

0+1就等于1

0+0就等于0

就依次这样得到了

我们看

次高位向最高位

有进位吗?

有的 对吧

那么

最高位向更高位

也就第七位向第八位

请大家注意

最左边这一个

最右边这一位

是最低位

最低位是

从第0位算的

所以

最高这一位

我们叫第七位

现在次高位

向最高位

有进位

但是最高位向更高位

没有进位

也就是两个进位状态

不一样

所以

就溢出了

也就是说

这两个如果是

有符号数的话

它就溢出了

也很明显

大家看 如果是有符号数

两个都是正数

它们做加法运算

居然得出负数了

显然结果是不对的

但是如果这两个数

是无符号数

溢出了没有呢?

没有

因为最高位向更高位

没有进位

这个是

这个原因

就是归结到前边

因为无符号数

和有符号数的

表数范围不同

所以它们的

描述方法

也就不同

最后我们来说一下

有关符号数

符号二进制数

到十进制的转换问题

转换的时候

希望大家首先

一定要关注

首先要关注

要把

真值去转换

而不要把符号位去转换

符号位

我们就直接用

正或者负来表述

因为计算机中

默认的

都是以补码形式来表示的

而补码呢

我们已经知道

和原码

是不一样的概念

我们说原码的定义

是符号位加绝对值

而补码呢

是因为正数的补码

和原码相同

所以正数的补码

也就等于

符号位加绝对值

但是负数

它的补码和原码不一样

所以

负数

它就绝对不等于

负数的补码

就绝对不等于

符号位加绝对值了

这个千万要注意

这个推理的过程

大家注意了

因为

原码是符号位加绝对值

而正数的补码

因为它等于正数的原码

所以它就恰好

或者说碰巧

就等于

正数的补码

就等于了符号位加绝对值

而负数的补码

因为它不等于原码

所以

它就不等于

符号位加绝对值了

那么 所以

对于一个负数的补码

怎么样能得到它的绝对值呢?

我们下边用这个例子

来给大家解释一下

假设我们X的补码

等于这个值

因为最高位是0

所以它是个正数

对吧 这没有问题

所以 这个

它的原码也就等于它

它的真值

也就很容易就得出来了

就是把那个最高位

这个0用正号来表示

后面就是它的绝对值

所以这个绝对值

把它的权值表达式展开

得到它的

十进制数

很容易就得出来

等于46

那么 如果我们

假设X的补码

等于这样一个数

也就是最高位现在变成1了

是负的了

因为它是负数

刚才我们说了

负数的补码

不等于原码

所以现在后面这个1010010

就不是它的绝对值了

因此它的真值

就也就不是

这样的一个值了

我们怎么样能够得出来呢?

我们必须要对这样一个X

再去求它的补码

也就是说

对这个补码数

再去取补码

因为为什么

不是说是

按位取反减1呢?

就是因为我们这个是个

就像刚才前面

我们说的钟表的概念

它是一个模的概念

所以它一直

在它转换

在它还原的过程中

我们还是

要按照这样子的一个方式

对这个补码数再去补码

再去补码以后

得到的结果就是-46

这个是没有问题的

这个是

补码与十进制的

补码数和十进制的转换

请大家要注意一下

最后我们在总结一下

对于正数来讲

因为补码等于反码

等于原码

所以

它们都等于

符号位加绝对值

那么对于负数

因为补码和原码不一样

所以它们的绝对值

负数的补码

符号位后边

就不再是数的真值

也就是说不是它的绝对值

只有原码的数值部分

才是绝对值

而补码和反码的

数值部分

都不一定是绝对值

特别是负数

那是绝对不是绝对值

OK

我们有关这个

计算机中数的表示

和它们的运算

就介绍到这里

请大家特别的关注

有关补码的表示

以及它们的运算

还有

就是

有关无符号数

有符号数

它们的

溢出的问题

也就是怎么样去判断

它们是不是溢出了

最后

就是请大家

一定要关注

对于符号数

和十进制数之间的转换

要注意

它的数的性质

好 这一讲我们就到这里

微机原理与接口技术课程列表:

第1周 微型计算机基础概论

-第1讲 关于本课程

--关于本课程

-第2讲 微型计算机系统

--微机系统_01

--微机系统_02

-第3讲 微型计算机一般工作过程

--微机的一般工作过程_01

--微机的一般工作过程_02

-第4讲 数制与编码

--常用计数制及其转换

--计算机中的编码

-第5讲 计算机中数的表示与运算

--数的表示

--符号数的表示

--数的表示与运算

-第6讲 基本逻辑运算与逻辑电路

--基本逻辑运算与逻辑门

--常用逻辑运算及电路

-第7讲 本周小结

--本周小结

-第1周 微型计算机基础概论--第一周单元测验

第2周 8088微处理器

-第8讲 8088微处理器

--8088 CPU_01

--8088 CPU_02

-第9讲 8088 CPU主要引线及机构

--8088 CPU主要引线

--8088 CPU内部结构

--8088 CPU内部寄存器

-第2周 8088微处理器--第二周单元测验

第3周 实模式存储器寻址与总线

-第10讲 实模式存储器寻址

--实模式存储器寻址_01

--实模式存储器寻址_02

--实模式存储器寻址_03

-第11讲 8088系统总线

--8088系统总线

-第12讲 微处理器小结

--微处理器小结

-单元测验--作业

第4周 数据传送指令

-第13讲 指令概述

--指令概述

-第14讲 寻址方式

--寻址方式

-第15讲 通用数据传送指令

--通用数据传送指令_01

--通用数据传送指令_02

--通用数据传送指令_03

-第16讲 地址传送指令

--地址传送指令

-第17讲 输入输出指令

--输入输出指令

-第4周 数据传送指令--第四周单元测验

第5周 算术运算、逻辑运算与移位操作指令

-第18讲 算术运算指令

--加法运算指令

--减法指令

--乘除运算指令

-第19讲 逻辑运算指令

--逻辑运算指令_01

--逻辑运算指令_02

-第20讲 移位操作指令

--移位操作指令

-第5周 算术运算、逻辑运算与移位操作指令--第五周单元测验

第6周 串操作指令

-第21讲 关于串操作指令的说明

--串操作指令说明

-第22讲 串传送与串比较

--串传送与串比较

-第23讲 串扫描指令

--串扫描指令

-第24讲 串装入与串存储指令

--串装入与串存储指令

-第六周单元测验--作业

第7周 程序与处理器控制

-第25讲 程序控制指令说明

--程序控制类指令说明

-第26讲 转移类指令

--无条件转移指令

--条件转移指令

-第27讲 循环控制指令

--循环控制指令

-第28讲 过程调用指令

--过程调用指令

-第29讲 中断指令

--中断指令

-第30讲 处理器控制指令

--处理器控制指令

-第31讲 指令系统小结

--指令系统小结

-第7周 程序与处理器控制--第七周单元测验

-第7周 程序与处理器控制--第七周作业

第8周 汇编语言程序设计

-第32讲 汇编语言源程序

-- 汇编语言源程序_01

-- 汇编语言源程序_02

-第33讲 伪指令

--数据定义伪指令

--符号与段定义伪指令

--汇编语言源程序结构例

--其它伪指令

-第34讲 系统功能调用

--系统功能调用_01

--系统功能调用_02

-第35讲 汇编语言程序设计示例详解

--程序设计示例1

--汇编语言程序设计示例_02

-第36讲 汇编语言程序设计小结

--汇编语言程序设计小结

-第8周 汇编语言程序设计--第八周单元测验

-第8周 汇编语言程序设计--第八周作业

第9周 半导体存储器

-第37讲 半导体存储器概述

--半导体存储器概述

-第38讲 内存单元编址

--存储单元编址

-第39讲 随机存取存储器RAM

-- RAM_01

--RAM_02

-第40讲 只读存储器ROM

--ROM_01

--ROM_02

-第九周单元测验--作业

第10周 半导体存储器扩展技术

-第41讲 半导体存储器扩展

--半导体存储器扩展_1

--存储器扩展_2

--半导体存储器扩展_3

-第42讲 半导体存储器小结

--半导体存储器小结

-第十周单元测验--作业

-第十周作业--作业

第11周 输入输出与中断技术

-第43讲 基本I/O接口

--I/O系统概述_01

--I/O系统概述_02

-第44讲 简单接口芯片

--简单接口芯片

-第45讲 基本输入输出方法

--基本I/O方法

-第46讲 简单I/O控制系统设计

--简单I/O控制系统设计1

--简单I/O控制系统设计2

-第47讲 中断技术

--中断技术1

--中断技术2

-第48讲 输入输出与中断技术小结

--本周小结

-第十一周单元测验--作业

第12周 可编程并行数字接口

-第49讲 可编程定时计数器

--可编程定时计数器8253_01

--可编程定时计数器8253_02

--可编程定时计数器8253_03

-第50讲 可编程并行接口

--可编程并接口8255_01

--可编程并行接口8255_02

--可编程并行接口8255_03

-第51讲 可编程接口小结

--本周小结_01

--本周小结_02

-第十二周单元测验

第13周 模拟量的输入输出

-第52讲 模拟量的输入输出

--模拟量的输入输出

-第53讲 D/A转换器

--D/A转换器_01

--D/A转换器_02

-第54讲 A/D转换器

-- A/D转换器_01

--A/D转换器_02

-第十三周单元测验--作业

第14周 系统综合设计示例详解

-第55讲 I/O接口系统综合设计示例详解I

--综合设计示例详解I_01

--综合设计示例详解I_02

-第56讲 综合设计示例详解II

--综合设计示例详解II_01

--综合设计示例详解II_02

-第57讲 结束语

--结束语

数的表示与运算笔记与讨论

也许你还感兴趣的课程:

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