(三)《数字电子技术基础》——码制
目录
码制定义
二-十进制码(BCD)
8421-BCD 码
2421-BCD 码
余3码
余3循环码
格雷码
检错码和纠错码
误差检验码
误差纠错码
字符-数字代码
码制定义
码制:即用数字技术来处理和传输的以二进制形式表示数字、字母或特殊符号的系统。
数字系统中经常使用的码制有:
- 二-十进制
- 格雷码
- 误差检验码
- 纠错码
- 字符、数字代码
我们就开始对这些码制进行逐一讲解:
二-十进制码(BCD)
BCD (Binary Coded Decimal)码是一种至少用四位二进制编码表示一位十进制数的代码。BCD码仅表示十进制数的十个数码,即0~9,所以有些码是禁用码。
BCD码的特点:
- BCD 码是用二进制码表示十进制0-9这十个状态 ;
- BCD码是一种人为选定的代码,有许多种编码方案:
- 有些BCD码为恒权码,如:8421、2421、5421码等;
- 有些BCD码为变权码,如:余3码、余3循环码等。
接下来,我们就来简单的介绍一下这些BCD码:
8421-BCD 码
- 8421-BCD的各位码有固定的权,具有这种特性的编码为有权码;
- 8421-BCD的位权是按2的次幂设置的,和自然二进制码一致,故常称其为自然BCD码,且应用最为广泛;
- 8421-BCD与自然二进制码的区别是,1010-1111这 6个编码在8421-BCD码中为禁用码;
- n位十进制数的BCD码由这n组BCD码构成。
2421-BCD 码
- 2421-BCD的各位码也有固定的权,因而也是一种有权码;
- 2421-BCD的位权分别是:2、4、2、1,且其前0-4的编码与8421-BCD码相同;
- 2421-BCD的0和9、1和8、2和7、3和6、4和5互为反码,即具有反射特性。这样不仅方便记忆,而且做加法时,若两数之和为10,其和正好等于二进制数的16,于是便能从高位自动产生进位信号。
余3码
- 余3码的各位码没有固定的权,其代码中每一位的1所代表的十进制数在各个代码中不是固定的,具有这种特性的编码为无权码或变权码;
- 余3码与8421-BCD码之间的关系为: 余3码=8421-BCD +“0011”,相当于8421加三,所以余3因此而来。
- 余3码的0和9、1和8、2和7、3和6、4和5也互为反码,即也具有反射特性,这样不仅利于对10求补(具有自补特性),而且做加法时,若两数之和为10,其和正好等于二进制数的16,于是也会从高位自动产生进位信号。
余3循环码
- 余3循环码也是一种无权码(或变权码);
- 余3循环码的最重要特点是其相邻的两个代码之间仅有一位码元的状态不同,即具有循环特性,这是一种错误最小化代码,在工程设计中引入可使设计的电路工作更加稳定;
- 余3循环码的编码取自4位典型格雷码的3-12这10 个代码,此乃“余3”之意;循环的意思是它最后一位与第一位也只有一位之差,所以为循环码。
格雷码在下面进行讲解;
格雷码
这是数电书上的格雷码与二进制代码的表,可以看到3~12其实就是余三循环码,我们接下来对格雷码进行讲解。
- 格雷码是一种无权码,其特点是任意两个相邻码组之间只有一位码元不同。典型的n位格雷码中,0和最大数( 2n-1 )之间也只有一位码元不同。因此它是一种循环码。
- 与普通二进制码相比,格雷码在传输过程中引起的误差较小,因为相邻码组中仅有一位码元不同,这样可减小逻辑上的差错,避免可能存在的瞬间模糊状态,所以它是错误最小化代码。
接下来我们来介绍一下常用的几种格雷码:
特点:
- 任何两个相邻的十进制数的格雷码仅有一位不同,这样可大大减小代码变化时出现的错误概率;
- 典型格雷码与8421-BCD码关系简单,即: Gi = Bi+1 ⊕ Bi(可以理解为,从后往前,依次取8421-BCD码的两位,进行异或运算,得到典型格雷码的后3位)
- 修改格雷码与典型格雷码隔开3位(余3)
- 修改格雷码、格雷码1具有镜面反射特性,所以又称反射码
- 典型格雷码与格雷码2只是最后一个码不一样,其余一样
检错码和纠错码
误差检验码
由于存在干扰,二进制信息在传输过程中会出现错误。为发现并纠正错误,提高数字设备的抗干扰能力,必须使代码具有发现错误并纠正的能力,这种代码称为误差检验码。
最常用的误差检验码为奇偶校验码。它的编码方法是在信息码组外增加一位监督码元,增加监督码元后,使得整个码组中“1”码元的数目为奇数或为偶数。若为奇数,称为奇校验码;若为偶数,称为偶校验码。
特点:
- 奇偶校验码可以检测单向单错。
- 奇偶校验码中,信息码和校验码是可以分离的,故称为可分离码。
- 无需任何附加电路可以从收到的奇偶校验码中取得信息码,从而简化了译码过程。
- 但是奇偶校验只能识别一位错误,并且无纠错能力。
误差纠错码
我们一般采用的误差纠错码是汉明码,具体介绍如下所示:
汉明距离——汉明距离是指两个等长字符串对应位置的字符不同的个数,即将一个字符串变换成另外一个字符所需要替换的字符个数。
汉明码——汉明码是一个在原有数据中插入若干校验码来进行错误检查和纠正的编码技术。
字符-数字代码
ASCII相信大家都挺熟的,是C语言的编码方式,在此就不做过多介绍:
- 字符、数字代码用来表示文字、符号和数码。它们是一种特殊的二进制代码,被广泛应用于计算机和数字通讯中。
- 常见的有EBCDIC和ASCII码。其中ASCII码是美国信息交换标准码。ASCII码一般为八位码,其中第八位是奇偶校验位,其它7位表示信息
好了,码制这一章就先介绍到这里啦!
(三)《数字电子技术基础》——码制相关推荐
- 数字电子技术基础第三版杨志忠_阎石数字电子技术基础第6版笔记和课后习题详解...
阎石<数字电子技术基础>(第6版)笔记和课后习题(含考研真题)详解 第1章 数制和码制 1.1 复习笔记 本章作为<数字电子技术基础>的开篇章节,是数字电路学习的基础.本章介绍 ...
- 山东大学继续教育计算机3,山东大学继续教育数字电子技术基础试题3及答案.doc...
数字电子技术基础模拟卷 3 一 填空. 1 逻辑代数中,基本的运算关系是 与 . 或 和 非 . 2 十进制数27转换成二进制数为 11011 :转换成8421BCD码是 00011011 . 3 在 ...
- 数字电子技术基础大作业---电子表、流水灯
数字电子技术基础大作业 电子表.流水灯 一.电子表 1.1应用的元件 555.六片74LS160N.三片74LS26D.两片74LS04D.六个个D_HEX(十六进制输入的显示数码管).电阻.电容若干 ...
- 《数字电子技术基础》6.4 时序逻辑电路——设计方法(FSM)有限状态机
前言 <数字电子技术基础>第6.4节学习笔记,本人在编写Verilog时序逻辑代码时,关于这一部分的状态图需要好好学一下. 6.4.1 同步时序逻辑电路的设计方法 一般步骤 一.逻辑抽象, ...
- 数字电子技术基础(八):超前进位加法器
目录 一.原理 二.Verilog实现及仿真 1.1位超前进位加法器 2.4位超前加法器 3.16位超前进位加法器 在上篇文章,介绍了串行进位加法器: 数字电子技术基础(七):加法器 这种加法器在运算 ...
- 《数字电子技术基础》4.4/6.5 组合逻辑/时序逻辑电路中的竞争-冒险
前言 <数字电子技术基础>第4.4节和第6.5节 组合逻辑电路和时序逻辑电路中的竞争-冒险现象学习笔记 4.4 组合逻辑电路中的竞争-冒险 4.4.1 竞争-冒险现象及其成因 之前讨论组合 ...
- 【数字电子技术基础】逻辑代数基本运算公式证明
参考书目:<数字电子技术基础>第三版.侯建军.高等教育出版社 名称 公式1 公式2 0-1律 A⋅1=AA⋅0=0A\cdot 1=A \\ A\cdot 0=0A⋅1=AA⋅0=0 A+ ...
- 天大2021年秋学期考试《433002[数字电子技术基础]》离线作业考核试题
数字电子技术基础 要求: 一.独立完成,下面已将五组题目列出,请按照学院平台指定的做题组数作答,每人只答一组题目,多答无效,满分100分: 平台查看做题组数操作:学生登录学院平台→系统登录→学生登录→ ...
- (一)《数字电子技术基础》——引言
目录 课程背景 数字电子技术的特点 数字电路的分类 课程背景 数字电子技术是电子信息类.电气工程类.自动控制类.机电类.计算机及其应用专业的一门专业技术基础课程.电子技术领域的两大支柱是模拟电子技术和 ...
- 数字电子技术基础知识点总结,包含习题!
数电/数字电子技术基础全面知识点及习题总结(看这一篇就够了!!!)_数电知识点整理_徐二苗的博客-CSDN博客
最新文章
- 技术进阶:Kubernetes高级架构与应用状态部署
- 网页设计师的必备选择20 +必需的Windows应用程序
- STM32 HAL库 串口DMA(收发)和STM32串口中断接收(接收时间管理机制)+ESP8266 wifi模组通信问题
- echart x轴 倾斜_1次加工28个零件,这就是为什么5轴机床这么牛:
- 爱优腾芒“跑马圈地”,AI广告营销能拯救“盈利难”的视频平台吗?
- anaconda如何做python笔记_Anaconda常用命令笔记
- oracle如何带符号求和,ORACLE 实现行转列(字符串求和)
- 设计模式(面向对象)设计的七大原则
- 从ReadImage到ML- 一个不错的博客
- final关键字的深入理解
- leetcode257. 二叉树的所有路径(回溯算法)
- a标签点击事件_html常用标签
- Mysql5.0中文乱码解决方案
- IntelliJ IDEA 2018安装+激活+汉化(详细图解)
- 【Git】Git commit push的时候出现了两个分支
- 云服务器的IT价值与部署分析
- 国产操作系统剽窃Linux内核可耻!
- 虚幻引擎编程基础(二)
- python判断是否为素数_python判断一个数是否为素数
- matlab 教案,matlab第七讲教案.doc