云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 软考教材分享:程序员考试考前串讲

软考教材分享:程序员考试考前串讲

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 11:11:39

程序员 http://www.educity.cn/jiaocheng/zg14.html

③②①排列,得到的二进制数值就是该数据中出错的位,例如第6位出错,则③②①为110为二进制数6.

当出现两位错误时,这种海明码能够查错,但无法纠错。

2.3.5 CRC码

一个二进制数可以用一个多项式来表示。例如,1011表示为多项式x3+x1+x0,在这里,x并不表示未知数这个概念,如果把这里的x替换为2,这个多项式的值就是该数的值。从这个转换我们可以看出,多项式最高幂次为n,则转换为二进制数有n+1位。

在循环冗余校验码(CRC码)中,编码是由K位信息码,加上R位的校验码组成。由K位信息码如何生成R位的校验码的关键在于生成多项式。这个多项式是编码方和解码方共同约定的,编码方将信息码的多项式除以生成多项式,将得到的余数多项式作为校验码;解码方将收到的信息除生成多项式,如果余数为0,则认为没有错误,如果不为0,余数则作为确定错误位置的依据。

和海明码的校验方程一样,生成多项式非常重要。但是,在考试中会直接给出,所以,我们并不要去关心如何生成多项式。生成多项式并非任意指定,它必须具备以下条件:最高位和最低位为1,数据发生错误时,余数不为0,对余数补0后,继续做按位除,余数循环出现,这也是冗余循环校验中\循环\一词的来源。 校验码的生成步骤如下。

(1)将K位数据C(x)左移R位,给校验位留下空间,得到移位后的多项式:C(x)×xR.

(2)将这移位后的信息多项式除生成多项式,得到R位的余数多项式。 (3)将余数作为校验码嵌入信息位左移后的空间。

程序员 http://www.educity.cn/jiaocheng/zg14.html

例如,信息位为10100110,生成多项式为a(x)=x5+x4+x+1,则:

得到余式为x4+x3,即校验码为11000,所以得到CRC码是:1010011011000. CRC的纠错能力取决于K值和R值。在实践中,K值往往取得非常大,远远大于R的值,提高了编码效率。在这种情况下,循环冗余校验就只能检错不能纠错。一般来说,R位生成多项式可检测出所有双错、奇数位错和突发错位小于或等于R的突发错误。使用循环冗余校验码能用很少的校验码检测出大多数的错误,检错能力是非常强的,这是它得到了广泛应用的原因。

CRC由于其实现的原理十分易于用硬件实现,因此广泛地应用于计算机网络上的差错控制。而且由于它采用的是模二除进行验算,因此十分适合于以串行同步方式传送数据块。

2.3.6 BCD码

BCD码也称为8421码,是二进制编码的十进制表示。BCD码使用4个二进制数来表示一位十进制数。例如,十进制数的138的BCD码表示为:0001 0011 1000. 由于BCD码的特性,如果使用BCD码进行计算时,可能需要进行修正。

例如,计算3+5,对应的BCD码表示为0011+0101=1000,即答案为8,这是正确的。但

程序员 http://www.educity.cn/jiaocheng/zg14.html

是,如果我们计算6+7,对应的BCD码表示为0110+0111=1101,这已经不在BCD码的范围里,此时需要进行修正。修正的方法是本位加6,并向高位进1.

还有一种编码是将BCD码加3作为数字表示法,称为余3码。在使用余3码进行计算时,从最高位产生的进位是真正的进位,对每4位的结果,如果是小于等于9的,则减3,如果大于9,则加3.

前面讨论的是用4位二进制数来表示1位十进制数,这是压缩的BCD码。非压缩BCD码就是分别用二进制符号数来表示各个位置上的数。例如,某二进制无符号数11101010,转换为三位非压缩BCD数,按百位、十位和个位的顺序表示,应为00000010 00000011 00000100.因为二进制无符号数11101010转成十进制就是234,其百位应表示为00000010,十位应表示为00000011,个位应该表示为00000100.

2.3.7 ASCII码

为了表示英文字母和其他一些符号、控制符,计算机中普遍采用的是ASCII码。它使用7位代表一个字符,包括了字母的大小写、数字、标点、控制符等。计算机通常使用8位一个字节来存储。

在前面的知识点中,我们讨论了数值型数据的表示方法。除了数值型之外,字符也是计算机中使用最多的信息形式之一。要在计算机内进行表示,就需要给每个字符指定一个确定的编码,作为识别与使用这些字符的依据。常见的英文字符编码如表2-4所示。

表2-4 常见英文字符编码

程序员 http://www.educity.cn/jiaocheng/zg14.html

2.3.8 汉字的内码

汉字和拼音文字不同,拼音文字只需要定义少量的字母和符号的编码即可完成所有文字的保存、显示任务。而汉字存在大量的单字,为了让计算机能够处理汉字,必须对汉字进行单独的编码。 1.汉字编码

汉字国标码(GB 2312-80)共收集常用汉字6 763个,其中一级汉字3 755个,按拼音排序;二级汉字3 008个,按部首排序;各种图形符号682个,共计7 445个。每个汉字、图形符号都采用两个字节表示,每个字节只使用低7位编码。可达到的最大容量是16 384个。

BIG5编码俗称\大五码\是普遍使用的繁体汉字的编码标准,包括440个符号,一级汉字5 401个,二级汉字7 652个,共计13 060个汉字。

GBK编码是中国大陆制定的中文编码扩展国家标准,该编码标准兼容GB 2312,共收录汉字21 003个、符号883个,并提供1 894个造字码位,其特点是简、繁体字融于一库。 GB 18030-2000在原来的GB 2312-80 编码标准和GBK编码标准的基础上进行扩充,增加了4字节部分的编码。向上则兼容ISO 10646,共有150多万个码位。它在原来的2万多汉字的基础上增加了7 000多个汉字的码位和字型,从而汉字达到27 000多个。它能有效地解决一些生、偏、难字的问题,适用于需要的人名、地名用字的系统。支持GB

搜索更多关于: 软考教材分享:程序员考试考前串讲 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

程序员 http://www.educity.cn/jiaocheng/zg14.html ③②①排列,得到的二进制数值就是该数据中出错的位,例如第6位出错,则③②①为110为二进制数6. 当出现两位错误时,这种海明码能够查错,但无法纠错。 2.3.5 CRC码 一个二进制数可以用一个多项式来表示。例如,1011表示为多项式x3+x1+x0,在这里,x并不表示未知数这个概念,如果把这里的x替换为2,这个多项式的值就是该数的值。从这个转换我们可以看出,多项式最高幂次为n,则转换为二进制数有n+1位。 在循环冗余校验码(CRC码)中,编码是由K位信息码,加上R位的校验码组成。由K位信息码如何生成R位的校验码的关键在于生成多项式。这个多项式是编码方和解码方共同约定

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com