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

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

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

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 22:56:22

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

例如,二进制数1011110转换为十六进制数,则可以分为2段(0101,1110),其对应的十六进制数为(5,E),因此,(1011110)2=5EH.

又如,二进制数1l0100.10111转换为十六进制数,则需要在整数部分的最高位补2个0,在小数部分的最低位补3个0,然后分为4段(0011,0100,1011,1000),其对应的十六进制数为(3,4,B,8),因此,(110100.10111)2=34.B8H.

相反,将十六进制数转换为二进制数,只要将每位十六进制数转换为4位二进制数即可。

例如,十六进制数D6.C3H转换为二进制数,因为D=1101,6=0110,C=1100,3=0011,所以D6.C3H=(11010110.11000011)2.

2.3.2 各种码制

本节主要掌握原码、反码、补码和移码的概念,以及各自的用途和优点。 1.原码

将最高位用做符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式。这种方式是最容易理解的。例如,假设用8位表示一个数,则+11的原码是00001011,–11的原码是10001011。

直接使用原码在计算时会有麻烦。例如,(1)10+(–1)10 = 0。如果直接使用原码,则: (00000001)2+(1000001)2 = (10000010)2

这样计算的结果是–2,也就是说,使用原码直接参与计算可能会出现错误的结果。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。 2.反码

正数的反码与原码相同。负数的反码符号位为1,其余各位为该数绝对值的原码按位取

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

反。例如,–11的反码为11110100。

同样,对上面的加法,使用反码的结果是: (00000001)2+ (11111110)2 = (11111111)2

结果再转回原码,这样的结果是负0,而在人们普遍的观念中,0是不分正负的。反码的符号位可以直接参与计算,而且减法也可以转换为加法计算。 3.补码

正数的补码与原码相同。负数的补码是该数的反码加1,这个加1就是“补”。例如,–11的补码为11110100+1 = 11110101。 再次做以上的加法,是这样的:

(00000001)2 + (11111111)2 = (00000000)2

这说明,直接使用补码进行计算的结果是正确的。也就是说,补码中0是唯一表示的。 对一个补码表示的数,要计算其原码,只要对它再次求补。由于补码能使符号位与有效值部分一起参加运算,从而简化了运算规则,同时它也使减法运算转换为加法运算,进一步简化计算机中运算器的电路,这使得在大部分计算机系统中,数据都使用补码表示。 4.移码

移码又称为增码,移码的符号表示和补码相反,1表示正数,0表示负数。也就是说,移码是在补码的基础上把首位取反得到的,这样使得移码非常适合于阶码的运算,所以移码常用于表示阶码。 5.数据表示范围

对于原码、反码和补码,假设用n位表示数据(二进制),则各种表示方法的表示范围如表2-3所示。

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

表2-3 各种码制所表示数的范围

2.3.3 奇偶校验码

奇/偶校验(ECC)是数据传送时采用的一种校正数据错误的一种方式,分为奇校验和偶校验两种。

如果是采用奇校验,在传送每一个数据(一般是1个字节)的时候另外附加一位作为校验位,当实际数据中1的个数为偶数的时候,这个校验位就是1.否则,这个校验位就是0,这样就可以保证传送数据满足奇校验的要求。在接收方收到数据时,将按照奇校验的要求检测数据中1的个数,如果是奇数,表示传送正确。否则,表示传送错误。

偶校验的过程和奇校验的过程一样,只是检测数据中1的个数为偶数。当实际数据中1的个数为偶数的时候,这个校验位就是0,否则这个校验位就是1.这样,就可以保证传送数据满足偶校验的要求。在接收方收到数据时,将按照偶校验的要求检测数据中1的个数,如果是偶数个1,表示传送正确。否则,表示传送错误。

例如,某数据的7位编码为0110101,若在其最高位之前增加一位偶校检位,则编码为00110101.

例如,在某次通信中,发送方发送了一个8位的数据(包含一个奇校验位),若传输过程中有差错,则接收方可检测出该8位数据奇数个位出错。因为奇校验码是添加1位校验位,根据信息码中1的个数来决定校验位的取值,使得填入校验位后,1的个数为奇数。也就是对收到的信息码按位做异或运算的结果应该是1,如果有偶数个位出错,那么异或的结果是相同的,因此无法检测出错误,只有当奇数个位出错时,才会导致异或运算的结果为

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

0,从而检测出错误。

2.3.4 海明码

海明码是奇偶校验的另一种扩充,和奇偶校验不同之处在于海明码采用多位校验码的方式,在这些校验位中的每一位都对不同的信息数据位进行奇偶校验,通过合理地安排每个校验位对原始数据进行校验位组合,可以达到发现错误,纠正错误的目的。

假设数据位有m位,如何设定校验位k的长度才能满足纠正一位错误的要求呢?我们这里做一个简单的推导。 k位的校验码可以有

个值。显然,其中一个值表示数据是正确的,而剩下的

-1

个值意味着数据中存在错误,如果能够满足: -1>m + k (m + k为编码后的总长度),

在理论上k个校验码就可以判断是哪一位(包括信息码和校验码)出现问题。

确定了k的值后,如何确定每k位中的每一位对哪些数据进行校验呢?这是一个问题。上面的推导只是说能够做的,那么如何达到纠错的目的呢?但是,考试中都会列出海明校验方程。例如:

其中⊕表示逻辑加。

在一般情况下,校验码会被插入到数据的1、2、4、8、…、2n位置,那么,在数据生成时,按照提供的海明校验方程计算出b1、b2、b4、…、bn,在数据校验时,按照海明检验方程进行计算,如果所有的方程式计算都为0,则表示数据是正确的。如果出现1位错误,则至少有一个方程不为0.海明码的特殊之处在于,只要将①②③三个方程左边计算数据按

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

共分享92篇相关文档

文档简介:

程序员 http://www.educity.cn/jiaocheng/zg14.html 例如,二进制数1011110转换为十六进制数,则可以分为2段(0101,1110),其对应的十六进制数为(5,E),因此,(1011110)2=5EH. 又如,二进制数1l0100.10111转换为十六进制数,则需要在整数部分的最高位补2个0,在小数部分的最低位补3个0,然后分为4段(0011,0100,1011,1000),其对应的十六进制数为(3,4,B,8),因此,(110100.10111)2=34.B8H. 相反,将十六进制数转换为二进制数,只要将每位十六进制数转换为4位二进制数即可。 例如,十六进制数D6.C3H转换为二进制数,因为D=1101,6=0110,C=110

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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