跳到主要内容

2 篇博文 含有标签「计算机通识」

查看所有标签

· 阅读需 17 分钟
Hanbin Che

计算机字符编码是一种方法,用于将字符(包括字母、数字、符号和控制字符)映射到数字值,以便计算机能够处理和存储文本数据。字符编码通常将每个字符映射到唯一的数字值,以便计算机能够识别和操作文本。以下是一些常见的计算机字符编码:

  1. ASCII 编码(American Standard Code for Information Interchange): ASCII 是最早的字符编码标准,它使用 7 位二进制数表示 128 个字符,包括英文字母、数字、标点符号和控制字符。ASCII 编码通常使用一个字节(8 位)来表示字符,其中最高位通常不用于字符表示,而用于奇偶校验。

    奇偶校验

    字符的奇偶校验是一种错误检测技术,用于确保传输或存储的字符数据的准确性。这种校验方法通过在字符的二进制表示中添加额外的位来检测和纠正可能的传输错误。通常有两种类型的奇偶校验:奇校验和偶校验。

    1. 奇校验(Odd Parity): 在奇校验中,校验位被设置为确保字符的二进制表示中有奇数个"1"位。如果字符的二进制表示中已经有奇数个"1"位,校验位则被设置为"1",以使整个字符(包括校验位)中有奇数个"1"位。如果字符的二进制表示中有偶数个"1"位,校验位则被设置为"0",以确保整个字符中有奇数个"1"位。

    例如,考虑字符 "1100101",它有偶数个"1"位,因此在奇校验中,校验位将被设置为 "1",以确保整个字符中有奇数个"1"位,变为 "11100101"。

    1. 偶校验(Even Parity): 在偶校验中,校验位被设置为确保字符的二进制表示中有偶数个"1"位。如果字符的二进制表示中已经有偶数个"1"位,校验位则被设置为"1",以使整个字符(包括校验位)中有偶数个"1"位。如果字符的二进制表示中有奇数个"1"位,校验位则被设置为"0",以确保整个字符中有偶数个"1"位。

    例如,考虑字符 "1100100",它有偶数个"1"位,因此在偶校验中,校验位将被设置为 "1",以确保整个字符中有偶数个"1"位,变为 "11100100"。

    奇校验和偶校验通常用于串行通信和存储系统中,以检测和纠正数据传输中的位错误。通过检查校验位,接收方可以确定数据是否在传输过程中发生了错误。如果校验失败,接收方可以请求重新传输数据或采取其他纠正措施,以确保数据的完整性。这种奇偶校验方法是一种简单而有效的错误检测技术,尤其适用于传输或存储较小的数据块。

  2. ISO-8859 编码: ISO-8859 是一系列字符编码标准,每个标准用于支持不同的字符集,例如 ISO-8859-1 用于支持拉丁字母字符集。这些编码标准通常使用 8 位字节来表示字符。

  3. UTF-8 编码(Unicode Transformation Format 8-bit): UTF-8 是一种可变长度字符编码,用于表示 Unicode 字符集中的字符。它可以表示几乎所有世界上的字符,并且在处理英文字母等常见字符时非常节省空间。UTF-8 使用 1 到 4 个字节来表示字符,具体取决于字符的 Unicode 码点。

    Details

    Unicode 码点 Unicode 码点是 Unicode 字符集中的每个字符所分配的唯一数字标识。每个字符都由一个整数值来表示,这个整数值就是 Unicode 码点。Unicode 字符集中的每个字符,包括字母、数字、符号、表情符号等,都有一个唯一的 Unicode 码点,用来标识和区分它们。

    Unicode 码点通常以"U+"(或"U-")后跟一个或多个十六进制数字表示。例如,拉丁字母 "A" 的 Unicode 码点是 U+0041,希腊字母 "Ω" 的 Unicode 码点是 U+03A9,表情符号 "😀" 的 Unicode 码点是 U+1F600。

    Unicode 字符集包含了数百万个不同的字符,每个字符都有一个唯一的码点,以支持世界上几乎所有的书写系统和符号。Unicode 码点的范围从 U+0000 到 U+10FFFF,因此可以表示广泛的字符集,包括世界各种语言、数学符号、货币符号、表情符号等等。

    通过使用 Unicode 码点,计算机系统能够处理多语言文本和复杂字符集,确保文本在不同系统和应用之间的互操作性,同时减少字符编码和字符集的混淆和冲突。这使得 Unicode 成为全球标准,用于在计算机系统和应用程序中表示文本数据。

  4. UTF-16 编码(Unicode Transformation Format 16-bit): UTF-16 也用于表示 Unicode 字符,它使用 16 位编码单元来表示大多数字符,但对于一些特殊字符,需要使用 32 位编码单元(代理对)。UTF-16 通常用于 Windows 操作系统和一些编程环境。

  5. UTF-32 编码(Unicode Transformation Format 32-bit): UTF-32 使用固定的 32 位编码单元来表示每个字符,因此不涉及可变长度编码。它通常用于某些特殊应用中,以简化文本处理。

这些是一些常见的字符编码标准,每个标准都有其特定的用途和适用性。在文本处理和编程中,了解和正确使用适当的字符编码非常重要,以确保文本数据的正确性和一致性。

· 阅读需 7 分钟
Hanbin Che

IEEE 754 是一个由电子电气工程师协会(Institute of Electrical and Electronics Engineers,简称 IEEE)制定的标准,用于定义浮点数的表示和运算规则。这个标准定义了浮点数的二进制表示方式、运算规则和精度等重要内容,广泛应用于计算机科学和工程领域,以确保浮点数在不同计算平台上的一致性和可移植性。

IEEE 754 标准通常包括以下几个方面的内容:

  1. 浮点数格式:IEEE 754 定义了多种浮点数格式,包括单精度(32 位)、双精度(64 位)和拓展精度格式,它们都具有固定的位数用于表示符号、指数和尾数(也称为尾数、尾数位数),以及规定了如何将二进制位解释为实际的浮点数值。

  2. 特殊值:IEEE 754 标准还定义了特殊值,如正无穷大、负无穷大、NaN(非数值)等,以处理在浮点数运算中可能出现的异常情况。

  3. 浮点数运算:标准规定了浮点数的四则运算(加法、减法、乘法和除法)和取余等操作的规则,包括舍入规则和溢出处理方式。

  4. 精度:IEEE 754 标准定义了浮点数的精度和有效位数,以及舍入方式,以确保在不同计算平台上的一致性。

  5. 转换:标准还定义了浮点数和整数之间的相互转换规则。

  6. 语言支持:IEEE 754 标准被广泛支持和实现在各种编程语言和硬件平台中,包括 C、C++、Java、Python 等,以及 CPU、GPU 和 FPGA 等硬件平台。

IEEE 754 标准的主要目标是提供一种通用的浮点数表示和运算方式,以便不同计算平台上的程序能够以一致的方式处理浮点数。然而,由于浮点数运算的特殊性质,开发人员需要了解标准中的一些细节,以避免由于舍入误差和浮点数精度问题而导致的潜在问题。在编写需要高精度浮点数运算的应用程序时,可能需要额外的精度控制和数值分析技巧。