# 复习日:数据表示 + 校验码(表格对比 + 易错点 + 记忆口诀)
2026/6/26 14:43:46 网站建设 项目流程

适合读者:软考中级备考同学
阅读时间:5分钟
内容:数据表示(原码/反码/补码/移码、定点/浮点、进制转换、逻辑运算)与校验码(奇偶/CRC/海明码)的对比表格、易错点、记忆口诀


一、数据表示部分

1.1 原码、反码、补码、移码对比表(4位机器)

真值原码反码补码移码
+50101010101011101
-51101101010110011
+00000000000001000
-01000111100001000

关键观察

  • 补码的0只有一种表示(0000),能多表示一个负数(如4位补码可表示-8)。
  • 移码 = 补码符号位取反(或真值+偏移量),用于浮点阶码。

1.2 定点数与浮点数(IEEE754)对比

类型小数点位置表示范围精度用途
定点数固定固定整数、控制
浮点数浮动有限(舍入)科学计算

IEEE754单精度(32位)结构

  • 符号位1位 + 阶码8位(移码,偏移127) + 尾数23位(隐含整数1)

1.3 进制转换速查

转换方法口诀
X → 十进制按权展开相加每位乘权求和
十进制 → X整数除基取余(倒序),小数乘基取整(正序)整数倒余,小数正整
二进制 ↔ 八进制每3位一组八进制三位二进制
二进制 ↔ 十六进制每4位一组十六进制四位二进制
八进制 ↔ 十六进制先转二进制先变二,再变目标

1.4 逻辑运算真值表

AB与 (AND)或 (OR)非 (NOT A)异或 (XOR)同或 (XNOR)
0000101
0101110
1001010
1111001

口诀
与:全1出1,有0出0
或:有1出1,全0出0
非:0变1,1变0
异或:相同0不同1
同或:相同1不同0


二、校验码部分

2.1 三种校验码对比表

校验码检错能力纠错能力原理硬件复杂度
奇偶校验奇数个错误增加1位使1的个数为奇数/偶数最低
CRC多位错误(取决于生成多项式)模2除法,余数为校验码中等
海明码能检测双错(需扩展),单错可纠单比特纠错多个校验位分组,校验子定位错误较高

2.2 奇偶校验要点

  • 奇校验:数据+校验位中1的个数为奇数。
  • 偶校验:数据+校验位中1的个数为偶数。
  • 只能检测奇数位错误,偶数位错误无法检出。

2.3 CRC要点

  • 生成多项式为G(x)G(x)G(x),发送方在数据后添加(位数−1)(位数-1)(位数1)个0,做模2除法,余数为CRC码。
  • 接收方用同一多项式除,余数0则正确。
  • 模2除法不借位、不进位,即按位异或

2.4 海明码要点

  • 校验位放在2i2^i2i位置(1,2,4,8…)。
  • 校验位个数kkk满足2k≥m+k+12^k \ge m + k + 12km+k+1mmm为数据位数)。
  • 每个校验位负责一组(位置号第i位为1的位),采用偶校验。
  • 接收方计算各校验组奇偶性,得到校验子(二进制数),其值即为出错位位置。

三、易错点汇总

  1. 原码、反码、补码的0的表示:原码和反码有+0和-0,补码只有一种0。
  2. 移码与补码的关系:移码 = 补码符号位取反(注意偏移量定义可能不同,软考常用符号位取反法)。
  3. IEEE754阶码偏移值:单精度偏移127,双精度偏移1023。
  4. 进制转换中的小数部分:十进制小数转二进制是“乘2取整”,连续乘2,不是除2。
  5. 逻辑运算优先级:非 > 与 > 或 > 异或/同或(考试中遇到复杂表达式,建议加括号或逐步计算)。
  6. 奇偶校验:只能检测奇数个错,不能纠错。
  7. CRC模2除法:每一步是异或,不是普通减法。余数位数 < 生成多项式位数。
  8. 海明码分组:校验位PiP_iPi负责所有位置号的二进制第iii位为1的位(从1开始编号)。常见错误:忘记包括校验位自身?实际计算校验位时,只统计数据位,但接收方校验时要包括校验位。
  9. 海明码校验子:接收方计算出的校验子二进制数就是出错位置(若为0表示无错)。注意位置从1开始。

四、记忆口诀汇总

数据表示

正数三码都一样,负数反码加一得补码。
移码就是补码符号反,浮点阶码常用它。

定点与浮点

定点范围小速度快,浮点范围大精度赖(有舍入)。
IEEE754记三块:符号阶码和尾数,阶码偏移127,尾数隐藏整数1。

进制转换

整数倒余,小数正整,二到八四三位组。

逻辑运算

与:全1出1;或:有1出1;非:0变1;异或:相同0不同1;同或:相同1不同0。

校验码

奇偶校验一位加,奇数偶数为两法,单错奇错都能查,偶错双错没法抓。
CRC有多项式,除后余数做校验,模2除不借位,异或运算要熟练。
海明分组靠2的幂,校验位数公式记,每组偶校验算出值,接收分组得二进制,若不为零指向错,取反纠正就完事。


五、复习自测题(答案见文末)

  1. 8位补码表示中,-128的补码是?
  2. 十进制 0.625 转二进制是?
  3. 逻辑表达式A⋅(B+C‾)A \cdot (B + \overline{C})A(B+C)当 A=1, B=0, C=1 时,结果为?
  4. 采用偶校验,数据 1011001 的校验位是?
  5. 已知生成多项式 10011,数据 1101,求CRC校验码?
  6. 海明码中,若接收方计算出的校验子为 011(二进制),表示哪一位出错?

答案

  1. 10000000
  2. 0.101
  3. 0
  4. 0(因为已有4个1,偶数)
  5. 101(过程略)
  6. 第3位(二进制011=3)

🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅

#软考中级 #软件设计师 #数据表示 #校验码 #复习日 #计算机系统知识

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询