type
status
date
slug
summary
tags
category
icon
password
.png?table=block&id=1f87c1d5-a1e9-805f-b9c2-e990dd0925ec&t=1f87c1d5-a1e9-805f-b9c2-e990dd0925ec)
浮点表示
本节探讨了计算机如何表示非整数(实数)值。
• 整数表示的局限性: 签名幅度、一的补码和二的补码等表示法仅适用于整数。
• 浮点表示的必要性: 科学和商业应用需要处理实数值,因此需要浮点表示。
• 浮点仿真: 可以在整数系统中通过巧妙的编程执行浮点计算,这称为浮点仿真。
• 科学计数法: 数字表示为两个部分:一个分数部分(尾数)和一个指数部分(表示 10 的幂)。例如,32,767 可以写成 3.2767 x 10^4。
• 计算机浮点表示: 计算机使用一种科学计数法形式。浮点数由三个固定大小的字段组成:
• 符号字段: 一位,表示存储值的符号。
• 指数字段: 决定可以表示的数值范围。
• 有效数(或尾数)字段: 决定表示的精度。
• IEEE-754 标准:单精度: 使用 8 位指数和 23 位有效数。
• 双精度: 使用 11 位指数和 52 位有效数。
• 简化 14 位模型: 为了说明目的,使用了一个具有 5 位指数和 8 位有效数的 14 位模型。在这个模型中,有效数包含一个分数二进制值,指数表示 2 的幂。
• 同义形式问题: 不同的二进制表示可能对应同一个数值,造成混淆。
• 规范化: 规定有效数的第一位必须是 1,以解决同义形式问题,从而为每个浮点数提供唯一的模式。
• 负指数问题: 需要一种方法来表示负指数(小于 1 的数值)。
• 偏置指数: 使用偏置指数来处理负指数。偏置是指数可表达值范围中间的一个近似值。通过从指数值中减去偏置来确定其真实值。例如,在 5 位指数的简化模型中,使用 16 作为偏置(过量-16 表示法)。小于 16 的指数值表示负指数。
• 加法和减法: 浮点加法和减法首先将两个操作数表示为相同的指数幂,然后相加,保持指数不变。如果需要调整指数,则在计算结束时进行。
• 计算误差:浮点表示是有限的,而实数系统是无限的,因此表示只是近似值。
• 模型总会在某个点出现问题,引入计算误差。
• 增加位数可以减少误差,但无法完全消除。
• 错误会在重复的算术运算中累积。
• 有些值(如 128.5)在简化模型中无法精确表示,导致低位丢失并引入相对误差。高位丢失更具问题。
• 溢出和下溢:溢出: 计算结果的高位没有空间存储时发生。
• 下溢: 值太小而无法存储时发生,可能导致除以零。
• 有经验的程序员认为程序崩溃比得到错误结果要好。
字符编码
本节讨论了如何在计算机中表示人类可读的字符。
• 字符编码的必要性: 为了显示计算结果、存储数据和提供数据输入,需要将人类可理解的字符转换为计算机可理解的位模式。
• 字符编码的发展: 随着计算机的发展,字符编码也随之发展,更大的内存和存储设备允许更丰富的编码。
• 早期编码:BCD (二进制编码十进制): 早期的 6 位代码,由 IBM 大型机在 20 世纪 50 年代和 60 年代使用。
• EBCDIC (扩展二进制编码十进制交换码): 1964 年将 BCD 扩展为 8 位代码。它支持大小写字母以及特殊字符和控制字符。
• ASCII (美国信息交换标准码): 7 位代码,基于电信代码,成为 IBM 大型机世界之外的主流字符代码。
• Unicode: 16 位系统,可以编码世界上所有语言的字符。Java 编程语言和一些操作系统使用 Unicode 作为默认字符代码。Unicode 码空间分为六个部分,第一个部分用于西方字母,包括英语、希腊语和俄语。ASCII 码是 Unicode 中编号最低的字符。最高编号的部分保留给用户定义代码。
错误检测和纠正
本节介绍了如何确保数据在存储和传输中的完整性。
• 错误发生的可能性: 任何数据记录或传输介质都不可能 100% 完美。随着存储密度和传输速度的提高,错误的可能性增加。
• 错误检测和纠正的重要性: 对于准确的数据传输、存储和检索至关重要。
• 错误检测机制:校验位: 添加到长数字末尾的校验位可以提供一些数据输入错误的保护。
• CRC (循环冗余校验): 为大型数据块提供错误检测。
• 校验和和 CRC 是系统错误检测的例子。
• 系统错误检测: 将一组错误控制位(称为伴随式)附加到传输数据块的末尾。
• 模 2 算术 (XOR): 用于 CRC 计算。规则很简单:0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1, 1 ⊕ 1 = 0。模 2 除法用于计算 CRC 伴随式。如果接收到的数据字符串除以约定的模式余数为零,则表示没有位丢失或损坏。
• 错误纠正:数据传输错误: 很容易修复,只需请发送方重新传输数据。
• 计算机内存和数据存储错误: 更具挑战性,因为只有一个副本。需要错误纠正码来提供长期数据完整性。
• 错误纠正码:汉明码和 Reed-Solomon 码: 两种重要的错误纠正码。
• Reed-Solomon 码: 特别适用于纠正突发错误(一系列相邻位损坏)。
• 汉明码: 通过向数据字添加冗余校验位(或奇偶校验位)形成码字。
• 汉明距离:汉明距离: 两个码字之间不同的位数。
• 最小汉明距离: 代码中所有码对之间的最小汉明距离。
• 最小汉明距离决定了代码的错误检测和纠正能力。要检测 k(或更少)个单比特错误,代码的汉明距离必须为 D(min) = k + 1。
• 汉明码可以检测 D(min) - 1 个错误,纠正 (D(min) - 1) / 2 个错误。因此,为了能够纠正任何数据字中的 k 个错误,需要 2k + 1 的汉明距离。
• 添加校验位以实现汉明距离: 通过向数据字添加适量的奇偶校验位来提供汉明距离。
• 确定校验位的数量: 对于一个包含 m 个数据位和 r 个冗余校验位的 n 位码字 (n = m + r),需要满足不等式 (m + r + 1) × 2^m ≤ 2^n,或 (m + r + 1) ≤ 2^r。这个不等式给出了码字中所需校验位的数量的下限。例如,对于 4 位数据字,至少需要 3 个校验位 (4 + r + 1) ≤ 2^r => r ≥ 3。对于 8 位数据字,至少需要 4 个校验位 (8 + r + 1) ≤ 2^r => r ≥ 4。
• 分配校验位的值: 在一个 n 位码字中,从低位开始编号,位置为 2 的幂(1、2、4、8 等)的位由校验位占用。这些校验位包含其参与求和的每个位位置的奇偶校验。使用偶数奇偶校验时,它是参与位值的异或运算。
• 错误检测和纠正示例: 演示了如何在接收到的码字中使用汉明算法检测和纠正单比特错误,通过检查哪些校验位不符合要求来定位错误位。
简答题
请用 2-3 个句子回答以下问题。
1. 为什么传统的整数表示形式不适用于科学或商业应用中的实数?
2. 在浮点表示中,“尾数”和“指数”的作用是什么?
3. IEEE-754 单精度和双精度标准的主要区别是什么?
4. 为什么浮点表示中需要偏置指数?
5. 执行浮点加法或减法的第一步是什么?
6. 为什么在浮点计算中会出现误差?
7. 请解释浮点溢出和下溢之间的区别。
8. 为什么需要字符编码方案?
9. 在系统错误检测中,“伴随式”是什么?
10. 汉明距离是如何用于错误检测和纠正的?
答案要点
以下是简答题的答案要点。
1. 传统的整数表示(如签名幅度、一的补码、二的补码)仅处理离散的整数值。它们无法表示实数固有的分数部分,而科学和商业应用经常涉及实数。
2. 在浮点表示中,尾数是数字的分数部分(通常规范化),而指数指示将尾数乘以 2(或 10,在科学计数法中)的幂。它们共同表示实数值。
3. 主要区别在于它们使用的位数。IEEE-754 单精度使用 8 位指数和 23 位有效数,而双精度使用 11 位指数和 52 位有效数,从而提供更大的范围和更高的精度。
4. 需要偏置指数来表示负指数,这些负指数对应于小于 1 的数值。通过从指数值中减去偏置,可以表示正负指数范围。
5. 执行浮点加法或减法的第一步是将两个操作数表示为相同的指数幂。这使得可以直接对它们的有效数进行操作。
6. 在浮点计算中会出现误差,因为浮点表示的模型是有限的,而实数系统是无限的。这意味着实数只能被近似表示,并且这种近似引入了误差,这些误差可能会在重复运算中累积。
7. 浮点溢出发生时,计算结果太大,高位无法存储。浮点下溢发生时,值太小而无法存储,可能导致除以零等问题。
8. 需要字符编码方案来将人类可读的字符(如字母、数字和符号)转换为计算机可以理解和处理的二进制位模式。这对于数据输入、存储和输出至关重要。
9. 在系统错误检测中,伴随式是一组错误控制位,它们被附加到传输数据块的末尾。这些位是根据数据计算出来的,接收方可以使用它们来检测传输过程中是否发生了错误。
10. 汉明距离是两个码字之间不同的位数。最小汉明距离决定了代码的错误检测和纠正能力:更大的距离可以检测和纠正更多的错误。
论文题
请选择以下任一题目,写一篇结构清晰的论文。
1. 讨论 IEEE-754 单精度和双精度浮点标准的设计选择及其对计算范围和精度的影响。举例说明这两种标准如何影响不同类型应用程序的数值准确性。
2. 比较和对比 EBCDIC、ASCII 和 Unicode 字符编码方案的历史发展和技术特性。重点讨论这些编码如何解决其前身存在的局限性以及它们在不同计算环境中的应用。
3. 详细解释 CRC 错误检测机制的工作原理,包括模 2 算术和伴随式的概念。讨论 CRC 在检测数据传输错误方面的优势,并与更简单的校验位方法进行比较。
4. 阐述汉明码的理论基础和实际应用,重点讨论汉明距离、校验位的确定以及单比特错误的纠正。举例说明如何使用汉明算法来检测和纠正码字中的错误。
5. 分析浮点表示固有的计算误差来源,包括近似、溢出和下溢。讨论这些误差如何影响计算的准确性,以及程序员如何通过使用更高级的表示或仔细的数值分析来减轻这些误差的影响。
术语表
以下是源材料中的关键术语及其定义。
• 签名幅度 (Signed Magnitude): 一种仅处理整数值的计算机数据表示法,其中一个位表示数字的符号(正或负),其余位表示其幅度。
• 一的补码 (One’s Complement): 一种仅处理整数值的计算机数据表示法,其中负数通过反转(补码)其正数形式的所有位来表示。
• 二的补码 (Two’s Complement): 一种仅处理整数值的计算机数据表示法,是表示有符号整数最常用的方法。负数是通过对其正数形式进行一的补码并加 1 来形成的。
• 浮点表示 (Floating-Point Representation): 一种表示实数(包含分数部分)的计算机数据表示法,使用类似于科学计数法的方式。
• 浮点仿真 (Floating-Point Emulation): 在没有硬件支持浮点运算的整数系统中,通过软件编程实现浮点计算的过程。
• 尾数 (Mantissa / Significand): 在科学计数法或浮点表示中,表示数字的分数或有效数字部分。
• 指数 (Exponent): 在科学计数法或浮点表示中,表示底数(通常为 10 或 2)的幂,尾数需要乘以该幂。
• IEEE-754: 广泛使用的二进制浮点算术标准,规定了单精度和双精度浮点表示的格式和运算。
• 偏置指数 (Biased Exponent): 在浮点表示中,通过向指数值添加一个固定偏置来允许表示负指数的一种技术。
• 过量-N 表示法 (Excess-N Representation): 一种偏置指数表示法,其中偏置值为 N。
• 规范化 (Normalization): 在浮点表示中,调整尾数和指数,使得尾数的第一位始终是 1(对于二进制表示),以确保每个数字具有唯一的表示形式。
• 浮点溢出 (Floating-Point Overflow): 浮点计算结果的幅度太大,无法在给定的表示格式中表示时发生的情况。
• 浮点下溢 (Floating-Point Underflow): 浮点计算结果的幅度太小(接近零,但不为零),无法在给定的表示格式中表示时发生的情况。
• BCD (二进制编码十进制): 一种早期的 6 位字符编码,主要由 IBM 大型机使用,将数字和其他字符编码为二进制。
• EBCDIC (扩展二进制编码十进制交换码): BCD 的 8 位扩展,支持大小写字母、数字和特殊字符。
• ASCII (美国信息交换标准码): 一种 7 位字符编码方案,广泛用于表示英文字母、数字、标点符号和控制字符。
• Unicode: 一种现代的字符编码标准,旨在表示世界上所有书写系统中的字符。它使用 16 位或更多的位来编码各种语言的广泛字符集。
• 错误检测和纠正 (Error Detection and Correction): 确保数据在存储或传输过程中保持完整性的技术。
• 校验位 (Check Digits): 添加到数字末尾的附加数字,用于检测数据输入或传输中的错误。
• CRC (循环冗余校验): 一种强大的错误检测技术,用于检测数据块中的错误,使用模 2 除法计算校验和。
• 系统错误检测 (Systematic Error Detection): 一种错误检测方法,其中错误控制位被添加到传输数据块的末尾,与原始数据分离。
• 伴随式 (Syndrome): 在系统错误检测中,根据接收到的数据计算的一组错误控制位。伴随式的值指示是否存在错误以及可能出现错误的位置。
• 模 2 算术 (Modulo 2 Arithmetic): 一种二进制算术形式,其中加法和减法等同于 XOR 运算,并且没有进位或借位。
• 汉明码 (Hamming Codes): 一类线性错误纠正码,可以通过添加冗余校验位来检测和纠正单比特错误。
• Reed-Solomon 码 (Reed-Solomon Codes): 一类非二进制循环纠错码,特别适用于纠正突发错误。
• 奇偶校验位 (Parity Bits): 添加到数据字中的冗余位,用于通过确保一定数量的位(通常是偶数或奇数)设置为 1 来检测错误。
• 汉明距离 (Hamming Distance): 两个等长二进制字符串之间不同的位数。
• 最小汉明距离 (Minimum Hamming Distance): 代码中所有有效码字对之间的最小汉明距离。它决定了代码的错误检测和纠正能力。
- • 整数表示的局限性: 签名幅度、一的补码和二的补码等表示法仅适用于整数。
- • 浮点表示的必要性: 科学和商业应用需要处理实数值,因此需要浮点表示。
- • 浮点仿真: 可以在整数系统中通过巧妙的编程执行浮点计算,这称为浮点仿真。
- • 科学计数法: 数字表示为两个部分:一个分数部分(尾数)和一个指数部分(表示 10 的幂)。例如,32,767 可以写成 3.2767 x 10^4。
- • 计算机浮点表示: 计算机使用一种科学计数法形式。浮点数由三个固定大小的字段组成:
- • 符号字段: 一位,表示存储值的符号。
- • 指数字段: 决定可以表示的数值范围。
- • 有效数(或尾数)字段: 决定表示的精度。
- • IEEE-754 标准:单精度: 使用 8 位指数和 23 位有效数。
- • 双精度: 使用 11 位指数和 52 位有效数。
- • 简化 14 位模型: 为了说明目的,使用了一个具有 5 位指数和 8 位有效数的 14 位模型。在这个模型中,有效数包含一个分数二进制值,指数表示 2 的幂。
- • 同义形式问题: 不同的二进制表示可能对应同一个数值,造成混淆。
- • 规范化: 规定有效数的第一位必须是 1,以解决同义形式问题,从而为每个浮点数提供唯一的模式。
- • 负指数问题: 需要一种方法来表示负指数(小于 1 的数值)。
- • 偏置指数: 使用偏置指数来处理负指数。偏置是指数可表达值范围中间的一个近似值。通过从指数值中减去偏置来确定其真实值。例如,在 5 位指数的简化模型中,使用 16 作为偏置(过量-16 表示法)。小于 16 的指数值表示负指数。
- • 加法和减法: 浮点加法和减法首先将两个操作数表示为相同的指数幂,然后相加,保持指数不变。如果需要调整指数,则在计算结束时进行。
- • 计算误差:浮点表示是有限的,而实数系统是无限的,因此表示只是近似值。
- • 模型总会在某个点出现问题,引入计算误差。
- • 增加位数可以减少误差,但无法完全消除。
- • 错误会在重复的算术运算中累积。
- • 有些值(如 128.5)在简化模型中无法精确表示,导致低位丢失并引入相对误差。高位丢失更具问题。
- • 溢出和下溢:溢出: 计算结果的高位没有空间存储时发生。
- • 下溢: 值太小而无法存储时发生,可能导致除以零。
- • 有经验的程序员认为程序崩溃比得到错误结果要好。
- • 字符编码的必要性: 为了显示计算结果、存储数据和提供数据输入,需要将人类可理解的字符转换为计算机可理解的位模式。
- • 字符编码的发展: 随着计算机的发展,字符编码也随之发展,更大的内存和存储设备允许更丰富的编码。
- • 早期编码:BCD (二进制编码十进制): 早期的 6 位代码,由 IBM 大型机在 20 世纪 50 年代和 60 年代使用。
- • EBCDIC (扩展二进制编码十进制交换码): 1964 年将 BCD 扩展为 8 位代码。它支持大小写字母以及特殊字符和控制字符。
- • ASCII (美国信息交换标准码): 7 位代码,基于电信代码,成为 IBM 大型机世界之外的主流字符代码。
- • Unicode: 16 位系统,可以编码世界上所有语言的字符。Java 编程语言和一些操作系统使用 Unicode 作为默认字符代码。Unicode 码空间分为六个部分,第一个部分用于西方字母,包括英语、希腊语和俄语。ASCII 码是 Unicode 中编号最低的字符。最高编号的部分保留给用户定义代码。
- • 错误发生的可能性: 任何数据记录或传输介质都不可能 100% 完美。随着存储密度和传输速度的提高,错误的可能性增加。
- • 错误检测和纠正的重要性: 对于准确的数据传输、存储和检索至关重要。
- • 错误检测机制:校验位: 添加到长数字末尾的校验位可以提供一些数据输入错误的保护。
- • CRC (循环冗余校验): 为大型数据块提供错误检测。
- • 校验和和 CRC 是系统错误检测的例子。
- • 系统错误检测: 将一组错误控制位(称为伴随式)附加到传输数据块的末尾。
- • 模 2 算术 (XOR): 用于 CRC 计算。规则很简单:0 ⊕ 0 = 0, 0 ⊕ 1 = 1, 1 ⊕ 0 = 1, 1 ⊕ 1 = 0。模 2 除法用于计算 CRC 伴随式。如果接收到的数据字符串除以约定的模式余数为零,则表示没有位丢失或损坏。
- • 错误纠正:数据传输错误: 很容易修复,只需请发送方重新传输数据。
- • 计算机内存和数据存储错误: 更具挑战性,因为只有一个副本。需要错误纠正码来提供长期数据完整性。
- • 错误纠正码:汉明码和 Reed-Solomon 码: 两种重要的错误纠正码。
- • Reed-Solomon 码: 特别适用于纠正突发错误(一系列相邻位损坏)。
- • 汉明码: 通过向数据字添加冗余校验位(或奇偶校验位)形成码字。
- • 汉明距离:汉明距离: 两个码字之间不同的位数。
- • 最小汉明距离: 代码中所有码对之间的最小汉明距离。
- • 最小汉明距离决定了代码的错误检测和纠正能力。要检测 k(或更少)个单比特错误,代码的汉明距离必须为 D(min) = k + 1。
- • 汉明码可以检测 D(min) - 1 个错误,纠正 (D(min) - 1) / 2 个错误。因此,为了能够纠正任何数据字中的 k 个错误,需要 2k + 1 的汉明距离。
- • 添加校验位以实现汉明距离: 通过向数据字添加适量的奇偶校验位来提供汉明距离。
- • 确定校验位的数量: 对于一个包含 m 个数据位和 r 个冗余校验位的 n 位码字 (n = m + r),需要满足不等式 (m + r + 1) × 2^m ≤ 2^n,或 (m + r + 1) ≤ 2^r。这个不等式给出了码字中所需校验位的数量的下限。例如,对于 4 位数据字,至少需要 3 个校验位 (4 + r + 1) ≤ 2^r => r ≥ 3。对于 8 位数据字,至少需要 4 个校验位 (8 + r + 1) ≤ 2^r => r ≥ 4。
- • 分配校验位的值: 在一个 n 位码字中,从低位开始编号,位置为 2 的幂(1、2、4、8 等)的位由校验位占用。这些校验位包含其参与求和的每个位位置的奇偶校验。使用偶数奇偶校验时,它是参与位值的异或运算。
- • 错误检测和纠正示例: 演示了如何在接收到的码字中使用汉明算法检测和纠正单比特错误,通过检查哪些校验位不符合要求来定位错误位。
- 1. 为什么传统的整数表示形式不适用于科学或商业应用中的实数?
- 2. 在浮点表示中,“尾数”和“指数”的作用是什么?
- 3. IEEE-754 单精度和双精度标准的主要区别是什么?
- 4. 为什么浮点表示中需要偏置指数?
- 5. 执行浮点加法或减法的第一步是什么?
- 6. 为什么在浮点计算中会出现误差?
- 7. 请解释浮点溢出和下溢之间的区别。
- 8. 为什么需要字符编码方案?
- 9. 在系统错误检测中,“伴随式”是什么?
- 10. 汉明距离是如何用于错误检测和纠正的?
- 1. 传统的整数表示(如签名幅度、一的补码、二的补码)仅处理离散的整数值。它们无法表示实数固有的分数部分,而科学和商业应用经常涉及实数。
- 2. 在浮点表示中,尾数是数字的分数部分(通常规范化),而指数指示将尾数乘以 2(或 10,在科学计数法中)的幂。它们共同表示实数值。
- 3. 主要区别在于它们使用的位数。IEEE-754 单精度使用 8 位指数和 23 位有效数,而双精度使用 11 位指数和 52 位有效数,从而提供更大的范围和更高的精度。
- 4. 需要偏置指数来表示负指数,这些负指数对应于小于 1 的数值。通过从指数值中减去偏置,可以表示正负指数范围。
- 5. 执行浮点加法或减法的第一步是将两个操作数表示为相同的指数幂。这使得可以直接对它们的有效数进行操作。
- 6. 在浮点计算中会出现误差,因为浮点表示的模型是有限的,而实数系统是无限的。这意味着实数只能被近似表示,并且这种近似引入了误差,这些误差可能会在重复运算中累积。
- 7. 浮点溢出发生时,计算结果太大,高位无法存储。浮点下溢发生时,值太小而无法存储,可能导致除以零等问题。
- 8. 需要字符编码方案来将人类可读的字符(如字母、数字和符号)转换为计算机可以理解和处理的二进制位模式。这对于数据输入、存储和输出至关重要。
- 9. 在系统错误检测中,伴随式是一组错误控制位,它们被附加到传输数据块的末尾。这些位是根据数据计算出来的,接收方可以使用它们来检测传输过程中是否发生了错误。
- 10. 汉明距离是两个码字之间不同的位数。最小汉明距离决定了代码的错误检测和纠正能力:更大的距离可以检测和纠正更多的错误。
- 1. 讨论 IEEE-754 单精度和双精度浮点标准的设计选择及其对计算范围和精度的影响。举例说明这两种标准如何影响不同类型应用程序的数值准确性。
- 2. 比较和对比 EBCDIC、ASCII 和 Unicode 字符编码方案的历史发展和技术特性。重点讨论这些编码如何解决其前身存在的局限性以及它们在不同计算环境中的应用。
- 3. 详细解释 CRC 错误检测机制的工作原理,包括模 2 算术和伴随式的概念。讨论 CRC 在检测数据传输错误方面的优势,并与更简单的校验位方法进行比较。
- 4. 阐述汉明码的理论基础和实际应用,重点讨论汉明距离、校验位的确定以及单比特错误的纠正。举例说明如何使用汉明算法来检测和纠正码字中的错误。
- 5. 分析浮点表示固有的计算误差来源,包括近似、溢出和下溢。讨论这些误差如何影响计算的准确性,以及程序员如何通过使用更高级的表示或仔细的数值分析来减轻这些误差的影响。
- • 签名幅度 (Signed Magnitude): 一种仅处理整数值的计算机数据表示法,其中一个位表示数字的符号(正或负),其余位表示其幅度。
- • 一的补码 (One’s Complement): 一种仅处理整数值的计算机数据表示法,其中负数通过反转(补码)其正数形式的所有位来表示。
- • 二的补码 (Two’s Complement): 一种仅处理整数值的计算机数据表示法,是表示有符号整数最常用的方法。负数是通过对其正数形式进行一的补码并加 1 来形成的。
- • 浮点表示 (Floating-Point Representation): 一种表示实数(包含分数部分)的计算机数据表示法,使用类似于科学计数法的方式。
- • 浮点仿真 (Floating-Point Emulation): 在没有硬件支持浮点运算的整数系统中,通过软件编程实现浮点计算的过程。
- • 尾数 (Mantissa / Significand): 在科学计数法或浮点表示中,表示数字的分数或有效数字部分。
- • 指数 (Exponent): 在科学计数法或浮点表示中,表示底数(通常为 10 或 2)的幂,尾数需要乘以该幂。
- • IEEE-754: 广泛使用的二进制浮点算术标准,规定了单精度和双精度浮点表示的格式和运算。
- • 偏置指数 (Biased Exponent): 在浮点表示中,通过向指数值添加一个固定偏置来允许表示负指数的一种技术。
- • 过量-N 表示法 (Excess-N Representation): 一种偏置指数表示法,其中偏置值为 N。
- • 规范化 (Normalization): 在浮点表示中,调整尾数和指数,使得尾数的第一位始终是 1(对于二进制表示),以确保每个数字具有唯一的表示形式。
- • 浮点溢出 (Floating-Point Overflow): 浮点计算结果的幅度太大,无法在给定的表示格式中表示时发生的情况。
- • 浮点下溢 (Floating-Point Underflow): 浮点计算结果的幅度太小(接近零,但不为零),无法在给定的表示格式中表示时发生的情况。
- • BCD (二进制编码十进制): 一种早期的 6 位字符编码,主要由 IBM 大型机使用,将数字和其他字符编码为二进制。
- • EBCDIC (扩展二进制编码十进制交换码): BCD 的 8 位扩展,支持大小写字母、数字和特殊字符。
- • ASCII (美国信息交换标准码): 一种 7 位字符编码方案,广泛用于表示英文字母、数字、标点符号和控制字符。
- • Unicode: 一种现代的字符编码标准,旨在表示世界上所有书写系统中的字符。它使用 16 位或更多的位来编码各种语言的广泛字符集。
- • 错误检测和纠正 (Error Detection and Correction): 确保数据在存储或传输过程中保持完整性的技术。
- • 校验位 (Check Digits): 添加到数字末尾的附加数字,用于检测数据输入或传输中的错误。
- • CRC (循环冗余校验): 一种强大的错误检测技术,用于检测数据块中的错误,使用模 2 除法计算校验和。
- • 系统错误检测 (Systematic Error Detection): 一种错误检测方法,其中错误控制位被添加到传输数据块的末尾,与原始数据分离。
- • 伴随式 (Syndrome): 在系统错误检测中,根据接收到的数据计算的一组错误控制位。伴随式的值指示是否存在错误以及可能出现错误的位置。
- • 模 2 算术 (Modulo 2 Arithmetic): 一种二进制算术形式,其中加法和减法等同于 XOR 运算,并且没有进位或借位。
- • 汉明码 (Hamming Codes): 一类线性错误纠正码,可以通过添加冗余校验位来检测和纠正单比特错误。
- • Reed-Solomon 码 (Reed-Solomon Codes): 一类非二进制循环纠错码,特别适用于纠正突发错误。
- • 奇偶校验位 (Parity Bits): 添加到数据字中的冗余位,用于通过确保一定数量的位(通常是偶数或奇数)设置为 1 来检测错误。
- • 汉明距离 (Hamming Distance): 两个等长二进制字符串之间不同的位数。
- • 最小汉明距离 (Minimum Hamming Distance): 代码中所有有效码字对之间的最小汉明距离。它决定了代码的错误检测和纠正能力。
convert_to_text转换为来源
Hamming Code(海明码)与 Hamming Distance(海明距离)
这两者是数字通信与计算机存储中检测并纠正传输错误的核心概念。
🧠 一、什么是 Hamming Code?
- Hamming Code 是通过在原始数据中添加冗余位(冗余校验位 / parity bits),生成的“编码字(code word)”
- 这些冗余位不是用来传输信息的,而是为了 检测并定位错误
🧩 举例:
原始数据是
1011
,Hamming 编码后可能变成 1011010
,其中几位是专门用来检查错误的。

- Author:盛溪
- URL:https://tangly1024.com/article/new%20comp9601%20lec%203%20note
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!