免费智能真题库 > 历年试卷 > 软件设计师 > 2009年上半年 软件设计师 上午试卷 综合知识
  第1题      
  知识点:   校验码   海明校验码
  关键词:   码字   数据   校验码   校验位        章/节:   计算机硬件基础知识       

 
海明校验码是在n个数据位之外增设k个校验位,从而形成一个k+n位的新的码字, 使新的码字的码距比较均匀地拉大。n与k的关系是(1)。
 
 
  A.  2k - l≥n + k
 
  B.  2n - 1≤ n + k
 
  C.  n = k
 
  D.  n-1≤k
 
 
 

 
  第5题    2019年上半年  
   42%
在( )校验方法中,采用模二运算来构造校验位。
  第4题    2015年下半年  
   48%
在机器指令的地址字段中,直接指出操作数本身的寻址方式称为(4)。
  第1题    2022年下半年  
   39%
以下关于R1SC(精简指令集计算机)特点的叙述中,错误的是()。
   知识点讲解    
   · 校验码    · 海明校验码
 
       校验码
        计算机系统运行时,各个部件之间要进行数据交换,有两种方法可以确保数据在传送过程中正确无误,一是提高硬件电路的可靠性,二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。码距是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
               奇偶校验
               奇偶校验是一种简单而有效的校验方法。其基本思想是,通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2。对于奇校验,它可以检测代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中奇数位发生了错误,也就是编码中的1变成0或0变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
               常用的奇偶校验码有3种,即水平奇偶校验码、垂直奇偶校验码和水平垂直校验码。
               海明码
               海明码的构成方法是:在数据位之间插入k个校验码,通过扩大码距来实现检错和纠错。设数据位是n位,校验位是k位,则nk必须满足2k-1≥n+k的关系。
               循环冗余校验码
               循环冗余校验码(CRC)广泛应用于数据通信领域和磁介质存储系统中。它利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。CRC的代码格式如下图所示。
               
               CRC的代码格式
               由此可知,循环冗余校验码是由两部分组成的,左边为信息码(数据),右边为校验码。若信息码占k位,则校验码就占n-k位。其中,n为CRC码的字长,所以又称为(n,k)码。校验码是由信息码产生的,校验码位数越长,该代码的校验能力就越强。在求CRC编码时,采用的是模2运算。模2运算加减运算的规则是按位运算,不发生借位和进位。
 
       海明校验码
        在数据中多加入几个校验位,把数据的每一个二进制位分配在几个奇偶校验组中,当某一位出错后,就会引起有关的几个校验位的值发生变化,这不但可以发现错误,还能指出哪一位出错。
        首先要确定校验位的个数。假设校验位个数为r,则它能表示2r个信息,用其中一个信息表示没有错误,其余2r-1个信息指出哪一位错,而错误也可能发生在校验位,因此只有k=2r-1-r个信息能用于纠正被传送数据的位数。也就是说要满足关系
        2rk+r+1
        注意:如要能检测与自动校正一位错,并发现两位错,那么还要加一位总校验位,则码距为4,此时应满足
        2r-1≥k+r
        按上述不等式计算,可计算出数据位k与校验位r的对应关系,如下表所示。
        kr的对应关系
        设海明编码为HmHm-1H2H1,则此海明码的编码规则是:校验位与数据位之和为m,每个校验位Pi在海明码中被分配在位号为2i-1的位置,其余各位为数据位依次排列;海明码的每一位码Hi由多个校验位校验,其关系是被校验的每一位的位号等于校验它的各校验位之和。
        可以看一个例子。现在要传送一个字节的数据,则k=8,那么r=4,所以海明码的总位数为12,可表示为
        H12H11H3H2H1
        4个校验位P4~P1对应的编号是H8H4H2H1。其余为数据位Di,则有以下排列:
        D8D7D6D5P4D4D3D2P3D1P2P1
        那么可以知道,D8处在H12的位置,12=4+8,所以由处在H4P3和处在H8P4检测,这样依次类推,可以得到由P1检测的数值位有D1D2、D4D5D7,若用偶校验,其结果为
        P1=D1D2D4D5D7
        P2=D1D3D4D6D7
        P3=D2⊕D3⊕D4D8
        P4=D5D6D7D8
        然后按下面关系对所得的关系实现偶校验,即
        S1=P1D1D2D4D5D7
        S2=P2D1D3D4D6D7
        S3=P3D2D3D4D8
        S4=P4D5D6D7D8
        则校验得到的结果值S4~S1能反映海明码出错情况。按S4S3S2S1的顺序排列形成一个二进制数,转换为十进制数为j,表示Hj出错。
   题号导航      2009年上半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第1题    在手机中做本题