几种简单的编码(为什么使用ASCII码)
- 二-十进制码(BCD码)
在目前的数字系统中,一般是采用二进制数进行运算的,但是由于人们习惯采用十进制数,因此常需进行十进制数和二进制数之间的转换,其转换方法上面已讨论过了。为了便于数字系统处理十进制数,经常还采用编码的方法,即以若干位二进制码来表示1位十进制数,这种代码称为二进制编码的十进制数,简称二-十进制码,或BCD码(Binary Coded Decimal Codes)。
因为十进制数有0~9共10个计数符号,为了表示这10个符号中的某一个,至少需要4位二进制码。4位二进制码有24=16种不同组合,我们可以在16种不同的组合代码中任选10种表示十进制数的10个不同计数符号。根据这种要求可供选择的方法是很多的,选择方法不同,就得到不同的编码形式。常见的有8421码、5421码、2421码和余3码等。
①有权BCD码
表中的8421、5421、2421为有权编码。
例如,对8421码而言,二进制码各位的权从高位到低位依次为8,4,2,1,如(0110)8421BCD所代表的十进制数为:0×8+1×4+1×2+0×1=6。又例如,对5421码而言,二进制码各位的权从高位到低位依次为5,4,2,1,所以(1010)5421BCD所代表的十进制数为:1×5+0×4+1×2+0×1=7
8421码十最常用的,因为他的权位规定与二进制的一致,是唯一的,其他两种就不是。
例如,数字6的2421编码可以是1100和0110;数字7的5421编码可以是0111和1010。
②无权BCD码
无权码每位的权并不确定。因此不能用按权展开的方法来求它所代表的十进制数。无权码在数字系统中不能进行数值运算。但是这些代码都有其特点,在不同的场合可以根据需要选用。
余3 BCD码属无权码,它是在每个对应的8421BCD代码上加(3)10=(0011)2而得到的。例如,十进制数6在8421BCD码中为0110,将它加(3)10,得到的1001即为十进制数6的余3码。在余3码的编码中,十进制数0和9、1和8、2和7、3和6、4和5对应位的码互为反码(一个是0,另一个是1),具有这种特性的代码称为自反代码。在表1.2中的2421码也是自反代码,但需注意,不是所有的2421码都是自反代码。 - 格雷码
格雷码(Gray码)是一种常见的无权码,其编码如表1.3所示。这种码的特点是:相邻两个代码之间仅有1位不同,其余各位均相同。具有这种特点的码称为循环码,故格雷码是一种循环码。格雷码的这个特点使它在代码形成与传输中引起的误差较小。例如在模拟量到数字量的转换设备中,当模拟量发生微小变化而可能引起数字量发生变化时,格雷码仅改变1位,这样与其他码同时改变2位或多位的情况相比更为可靠,即减小了出错的可能性。
- 奇偶校验码
奇偶校验码是一种具有检错能力的代码,它是在原代码(称为信息码)的基础上增加一个码位(称为校验码、校验位或附加位),使代码中含有的1的个数均为奇数(称为奇校验)或偶数(称为偶校验),这样通过检查代码中含有的1的数目的奇偶性来判别代码的合法性。显然,信号在传送过程中如果代码有两位出错,则这种奇偶校验法是无法检测的,因为两位出错不会改变代码中含1码个数的奇偶性。所以,奇偶校验码仅适用于信号出错率很低,且出现成对错误的概率基本为0的情况。
- 字符数字码
除了数字数据外,计算机还必须能处理非数字信息。即计算机应能识别表示字母、标点符号和其他特殊符号以及数字的代码。这些代码叫做字符数字码。一个完整的字符数字码应包括26个小写英文字母、26个大写英文字母、10个数字符号、7个标点符号,以及其他20~40个特殊符号,如+、/、#、%、*等。也就是说,字符数字码能表示计算机键盘上所看到的各种符号和功能键。
美国信息交换的标准代码(简称ASCII)是应用最为广泛的字符数字码。ASCII码是7位码,因此有2的7次方=128种可能的代码组合。这足以表示标准键盘的字符、回车、换行等控制功能。表1.5列出了部分ASCII码,对于每一个符号,表中不仅给出了二进制码,而且给出了等值的八进制数和十六进制数。
字符’0’的对应的ASCII十进制是48;
大写的字符‘A’的ASCII十进制是65;
小写的字符’a’的ASCII十进制是97。
几种简单的编码(为什么使用ASCII码)的更多相关文章
- 漫谈计算机编码:从ASCII码到UTF-8
第一阶段 盘古开天辟地——ASCII码 计算机大家都知道,本质是二进制运算和存储.在计算机中人类的几乎所有文字和字符都没法直接表示,所以美国人在发明计算机的时候为了让计算机可以用于保存和传输文字,就发 ...
- 字符编码笔记:ASCII,Unicode 和 UTF-8个人理解
一.ASCII 码 我们知道,计算机内部,所有信息最终都是一个二进制值.每一个二进制位(bit)有0和1两种状态,因此八个二进制位(字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作 ...
- php与ascii码
首先 简单说一下历史,ascii码最开始是美国人搞出来的,用来干什么呢?我们知道,计算机只知道0和1,如果我们要计算机识别除了01之外的字符,例如 'a',我们要先告诉计算机‘1100001’就是'a ...
- 扩展ASCII码,不同的国家有不同的字符集。Unicode转换为utf8的规则,utf8没有大小端的问题。超过0xFFFF的Unicode字符WINAPI也无能为力(附各种字符编码表及转换表)good
一.概念 1,ASCII ASCII(American Standard Code for Information Interchange),中文名称为美国信息交换标准代码.是 ...
- ASCII码
ASCII(pronunciation: /ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是 ...
- js控制文本框只能输入数字 及 常用字符对应ASCII码值
方法一: <INPUT TYPE='text' NAME=text onkeypress="a()"><script language=javascript> ...
- ascii码与unicode码的区别
ASCII(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西 ...
- 什么是ASCII码?
㈠定义 ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...
- 字符编码笔记:ASCII,Unicode和UTF-8
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节". 再后来,他们又做了一些可以处理 ...
随机推荐
- Unity与安卓IOS交互
记录下 安卓与Unity交互中 跳坑 找到的资料. <1>建立交互 http://blog.csdn.net/lizhengwei1989/article/details/54631 ...
- ntp时间同步参考
https://blog.csdn.net/kamereon/article/details/54344114
- python学习笔记(三)- 字典、集合
字典:key-value形式 1)取数据方便 #字典里面没有重复的key 2)查询速度快 #字典是无序的 一.定义一个字典 infos = { 'name':'王小明', 'sex':'male' ...
- IO 、NIO、AIO
Java 中的流 https://ifeve.com/java-nio-vs-io/
- FortiGate端口聚合配置
1.端口聚合(LACP)应用场景 该功能高端设备上支持,FortiGate60D.FortiGate90D和FortiGate240D等低端型号不支持. 1.在带宽比较紧张的情况下,通过逻辑聚合可以扩 ...
- Java15-java语法基础(十五)——内部类
java16-java语法基础(十五)内部类 一.内部类: 可以在一个类的内部定义另一个类,这种类称为内部类. 二.内部类分为两种类型: 1.静态内部类: 静态内部类是一个具有static修饰词的类, ...
- JavaSE基础知识(3)—流程控制结构
一.顺序结构 1.说明 程序从上往下依次执行,中间没有任何跳转或选择2.特点 变量必须遵循 “前向引用” (局部变量必须先声明.赋值,然后再使用!) 二.分支结构(条件) 1.说明 程序从两条或多条路 ...
- Idea创建简单Java Web项目并部署Servlet
1.打开Idea,创建JAVA Web项目 在WEB-INF目录下创建classes和lib文件夹 配置编译输出路径为刚才新建的classes文件夹 配置依赖jar包加载路径 添加tomcat ser ...
- 关于requests库中文编码问题
转自:代码分析Python requests库中文编码问题 Python reqeusts在作为代理爬虫节点抓取不同字符集网站时遇到的一些问题总结. 简单说就是中文乱码的问题. 如果单纯的抓取微博 ...
- 19. pt-query-digest
慢查询参数 slow_query_log=1slow_query_log_file=/mysql3306/log/slow.log 记录的是查询语句,而非管理语句.除非启用 los_slow_admi ...