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

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

计算机中的编码在线视频

计算机中的编码

下一节:数的表示

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

计算机中的编码课程教案、知识点、字幕

大家好

这一讲我们来介绍

计算机中的编码

由于计算机

它能够直接识别的

只有0和1

这样的二进制的形式

因此

我们在计算机中

所处理的所有的信息

都必须要转换成

0和1这样的形式

这就是所谓的编码

所以 编码

就是要将

所有由计算机处理的信息

来转换成二进制的形式

具体的来讲

编码

就是信息从一种格式

或者一种形式

转换成另外一种形式的

这样的一个过程

那么在我们

这个特定的这样一个环境下

所转换的这种形式

就是二进制的形式

那么

为什么需要这样的编码呢?

实际上

除了让计算机能够

识别这样一个因素之外

把这种各种样的信息

转换成一种代码的形式来表示

其实还有一个很主要的目的

就是为了

处理上的一种方便

计算机能够识别

或者处理的信息

除了数值以外

还有字符

声音 图形 图像 视频

等等这些

所有的这些信息

要能够让计算机所识别

都必须要转换成

0和1这样的形式

也就是说

都需要进行编码

那么

在我们这门课中

因为我们这门课涉及的是

计算机的硬件

也就是相对于来讲

它是一个比较底层的

一个处理的环节

所以我们在这里

不会去涉及到

视频 音频 图像

这样子的一些信息

我们只会去

考虑

数值和字符

计算机是人家美国人发明的

所以 最早

他们所处理的信息

都是数值信息

和西文字符

因此

下边我们要谈的计算机的编码

就是数值和西文字符的编码

数值的编码

除了我们已经都很清楚的

这种二进制数的形式

就是说二进制码以外

还有一种

就是用0和1来表示的

实际上是十进制数的性质

就叫BCD码

还有就是我们要介绍的是

西文字符的一种

就是美国国家信息编码的一个简称

加ASCII码

下边我们首先来介绍

BCD码

BCD码这是它的全称

就是Binary Coded Decimal

它就是用

二进制的形式

来表示的十进制数

所以

它的特点

是保留了十进制的权

但是用0和1来表示

我们知道

十进制实际上有

0到9这样十个符号

十个符号

我们要用二进制来表示

那么至少需要四位二进制码

因为

四位二进制码

才有十六种组合

三位二进制码

只有八种组合

不足以能够表示

全部的十进制的符号

所以

我们这里用四位二进制码

来可以表示一位十进制数

这种表示方法

我们也称为8421码

8421码

它的含义

为什么叫8421?

就是因为

我们来看这个例子

我们0000

用来表示十进制的0

那么1001

就可以来表示十进制的9

中间我们就

连续就不再去

一个个举出来

那么

在这样的一个表示方法中

这四位中

最高这一位

它的权值是多少呢?

是2的3次方

2的3次方就是8

次高位就是2的2次方

那就是4

所以依次下来

就是8421

所以这个是

这四位二进制码

它的权值

用这四位二进制码

来表示一位十进制数

因为我们十进制

只有十个符号

而四位二进制

又有十六种组合

因此

1010到1111

这样六个编码符号

就不是合法的BCD码了

而是十六进制数了

所以

这个是大家学习BCD的时候

稍微要注意的一点

那么BCD码

和十进制

我们刚才讲

BCD实际上

本质上就是

用0和1来表示十进制数

所以

它和十进制之间的转换

实际上是可以直接去对应的

我们来看这样一个例子

这个例子

我们BCD码

和二进制表示上

请大家注意

就是它都是每四位一组

每四位一组

这样子来隔开的

所以

在这样一个BCD数里

大家直接就可以

读取它的十进制数等于多少了

第一个四位

1001那是9

第二个四位

1000是8

依次类推

所以它等于986.3

这样一个数

所以

BCD跟十进制之间的转换

是非常简单的

因为它们实际上是

完全对应的一种关系

那么BCD

虽然它是用0和1来表示的

但是它不是二进制数

它本质上是十进制

因此

它要准换成二进制数

还有一个转换的过程

这个过程

就是先要把它转换成十进制

再转换成二进制

我们同样来看一个例

比如这样一个BCD数

那么它等于多少十进制数

大家可以一眼就出来

就是11.25

那么如果

它要转换成二进制数呢?

我们按照

我们前面讲过的

十进制到二进制的转换

整数部分除2取余

小数部分乘2取整

这样的方法

最后就得到了

这么样一个二进制数

这是BCD到十进制

和二进制之间的转换

那么

BCD码在内存中

是怎么存放的呢?

我们知道

内存一个单元里

都是有八位二进制码

都是存八位

也就是一字节数

那么BCD数

我们刚前面

我们刚说过

它是由四位二进制码来表示的

那么也就是说

一个字节的二进制

或者一个字节的

这样一个空间

能够存放两位

两组BCD

就是两个四位的BCD

或者说两位十进制数

这种表示方法

用我们称为压缩BCD码来表示

也就是说每四位二进制码

来表示一位十进制数

那么一个存储单元里

就可以存放两位BCD数

那么当然

我们计算机中

开始诞生那天起

就一直是八位字长

所以

我们也同样可以用

一个内存单元里

就放一位BCD数

这样子的情况

那么这种

我们称为

扩展BCD码来表示

也就是说

八位二进制码

来表示一位十进制

那么这个时候

当然有效的

还是只有第四位

这个时候高四位

它就全部是0

这是BCD

和二进制的转换

以及和十进制的转换

以及它们在内存中的

这样两种不同的存放形式

请大家注意

BCD实际上是给人看的

计算机的硬件

并不能识别

计算机的硬件永远只能认识

高电平和低电平

也就是0和1

所以

你存放在

内存单元中的这个数

这些01 01

这八个01 01

到底是BCD

还是二进制

这个实际上是

是要由程序员去控制和管理的

好 下边我们来说一下

西文字符的编码

西文字符

前面我们说

计算机是美国人发明的

而美国人所使用的文字

就是大写26个字母

小写26个字母

再加上

数值和标点符号 等等

因此 再另外

再加上一些

我们计算机中

特有的一些控制符号

所以

ASCII码

它总的合在一起

一共最早期的

就是128个字符

所以

它用我们所谓的标准ASCII码

就是用七位二进制码

就可以表示了

但是我们也说了

计算机从开始诞生那天起

就是一个字节

所以

七位二进制码

它是不能够符合

我们计算机字长的要求

因此这个时候

它把最高位也要用上

在标准ASCII编码中

最高位默认的是0

顺便也可以跟大家介绍

那么 今天

因为我们这个计算机

从美国后来就扩展到

就发展到欧洲

最后发展到全世界

那么

这个时候

这128个编码组合

显然不能够满足

我们全世界

各种文字的

编码的需求

所以

今天大家会听到

比如uniq的码

那个

等等一些其它的编码

那么这些

就是用十六位二进制码

来表示一个符号

比如我们汉字符

实际上就是

两个字节的二进制码来表示的

那么

从标准ASCII码

往欧洲去扩展的时候

因为欧洲的语言里

包括了像希腊的一些字母

包括了

像德语上面有两点

或者法语上面有一撇

这种表示

所以这种128个字符

是不够的

所以后来就变成了真正的

八位二进制码

来表示一个ASCII字符的

表示一个字符的这种形式

这种就叫扩展ASCII码

扩展ASCII码

就是八位二进制来表示的

那些在我们这门课里

暂时都不会涉及

我们在这里

大家看到的

都是用七位二进制码

来表示一个

表示一个字符的这种编码方式

也就是标准ASCII的编码

我们下面来看一个例子

在这个表里

我们看到

有一部分是大写字母

有一部分是小写字母

还有一部分是数值

它们都分别用

这样八位二进制码来表示

在这八位二进制码里

它们所有的高位

就最高这一位

就是第七位

都是0

这就是我们

标准ASCII编码的一个事例

大家看这样一个事例

从这个事例里

我们可以看出来

实际上编码是个什么呢?

编码说白了

它就是一种变换

也就是说我们现在的

大写字母A

因为我们直接写A

硬件不能够认识

所以我们写上01000001

这样的一个编码进去

计算机硬件

马上它就能认识了

认识以后

它自己内部

有这样一个转换表

所以它一看

它就会转换成

大写的字母A

因为我们在这门课里

上一次我们讲到了

十六进制数

十六进制数有十六个符号

0到9之外

还有A到F

分别来表示10到15

所以

请大家注意

我们现在红色字体

就是高四位为红色字体的

这个表里的一些编码

请大家一定要熟悉

这就是

A到F

和0到9的ASCII码

大家去观察一下

这些编码

会发现

它们的高四位都是一样的

从A到F

它们的高四位

都是0100

也就是都是4

从数值0到9

它们的高四位

都是0011

也就是都是3

特别是0到9的ASCII码

希望大家要熟悉

这样的话

我们后边在实际编程使用的时候

会带来一些方便

ASCII码

从刚才我们讲

它的标准ASCII码的有效位

只有七位

那么最高位

在默认情况下是0

但是在信息传输

或者在通信的时候

我们往往会需要知道

我所接收的

对方发给我的信息

是不是正确的

那么这个时候

就引入了一种校验的概念

最简单的一种校验

我们称为奇偶校验

奇偶校验就是

它利用

它传输的每个字节中

1的个数

是奇数个还是偶数个

这样的概念

来描述

到底我接收的东西是不是对的

也就是说

奇偶校验

实际上它是一种校验方式

从另外一个角度来讲

我们也相当于一个约定

就是说

比如我是发送方

你是接收方

那么我

我们事先约定好

我发送的信息里

每一个字节里

1的个数都是偶数个

那么等你接收到的时候

你可以去检验

每一个字节中

1的个数是不是偶数个

如果是偶数个

你就认为是对的

如果不是

你就认为是错的

但是

你怎么能够认定

我每一个发送的

我发送的每一个字节信息里

1的个数一定是偶数个呢?

比如我们现在

就要发送一个

字符1

也就是刚才我们

前面那张表里看到的

比如我们现在回去

就比如我们现在看到的

字符1

它的编码是00110001

这样子传送出来的一个字节

1的个数

就不是偶数个

但是我确实传送

就需要传送这个1

你也确实需要接收这个1

但是

我们事先认为它是

约定每一个字节里都是

1的个数都是偶数个的话

你这现在你就认为它是错的

因此在这种时候

我们就需要用到了最高位

用它来设计

设置

或者说调节

我们这种约定

这个话怎么讲呢?

我们下面用这个例子来说

最简单的这种校验方式

我们称为奇偶校验

我们用奇校验来给大家解释

这样子的一个

刚才我们说的这个原理

比如现在这个例子里

就是我们要发送的

这个是大写字母A

大写字母A的编码

本来是这样子的一个

里头这1的个数是偶数个

但是如果我们

约定用奇校验来传送的话

那么我们

必须要以这样的形式来传送

就是11000001

这样子的话

你接收到的时候

你知道最高位

它实际上是一个校验位

你可以把它去掉

然后 后边的才是

你真实接收到的数据

那么我们

约定了奇校验

那么你接收到以后

你一看1的个数是奇数个

你就知道它是对的

那么 相应的

如果这个搞清楚了

偶校验就不是问题

也就是说我们约定

每一个字节的数

我发送的每一个字节里

1的个数都是偶数个

那么 我们就以偶校验的形式

来传送

如果

偶校验来传送这个大写字母A的话

那就不需要变换了

我们最高位继续保持

它默认的0就可以了

这个就是

ASCII码中的

所谓的奇偶校验

这个奇偶校验在

是在通信中的一些概念

这里我们用它做例子

给大家介绍一下

这个 引入这个概念

好 有关编码

我们最后来做一个练习

这个练习里

我们有三道题目

首先 我们来看第一道题目

将这个二进制码

转换成对应的BCD数

那么它的转换过程

首先

跟我们前面一样

要转换成十进制数

转换十进制的方法

就是按照

权值表达式展开 求和

就可以了

那么这个二进制数的

它的整数部分

每一位都有它的权值

小数部分

每一位也有权值

这个方法

我们在前面已经学习过

所以我们在这里

直接给出一个结果

这个转换的结果

就是150.5625

那么这个数

就是十进制

那么它对应的

BCD数是多少呢?

我们就可以直接写出来了

比如150

那么1就是0001

5就是0101

等等

这样子

就可以直接写出

它的BCD的答案

请大家注意

表示BCD的时候

除了它的后边

一定要给出BCD

这样的标识之外

每四位二进制码

一定要写在一起

中间要有空格

这样子才能表示

它实际上

是一个十进制数的性质

第二道题是

把一个十六进制数

转换成多少十进制数

以及它的BCD数

这个十六进制数

转换成十进制的方法

也很简单 对吧

就是每一位

它的权值

比如在

也是权值表达式

展开求和就可以了

那么最高这一位1

就相当于1乘16的3次方

然后F

F是多少呢? 是15

它乘16的2次方

等等这样子

所以它

转换的结果

它等于的十进制数

等于7997

那么这个数

转换成BCD数

等于多少呢?

同样的

我们也可以直接把它写出来

7就是0111

9就是1001 等等

这就是它的结果

最后一道题是

我们以奇校验的形式

来传送大写字母B

那么

这个时候

它的ASCII码应该等于多少

B我们前面看到了

B的ASCII码

就是01000010

也就是说

用十六进制来说的话

是42H

在这样子的一个编码里

它的1的个数是偶数个

那么 如果

我们按奇校验传送的话

我们必须要让它的最高位

那个校验位

变成1

所以这个时候

它的编码

就变成了这种形式

有关编码这部分

因为相对比较简单

所以 我们

很快就学完了

希望大家能够理解

好 这一讲就到这

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

第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讲 结束语

--结束语

计算机中的编码笔记与讨论

也许你还感兴趣的课程:

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