一、数据表示的基本概念
在计算机系统中,所有信息——无论是数字、文字、图像还是声音——最终都必须以二进制的形式表示和处理。因此,如何高效、准确地将各类数据映射为二进制形式,是计算机组成原理中的核心问题之一。数据的表示不仅影响存储效率,还直接关系到运算的正确性与系统的性能。
二、数值数据的表示
2.1 二进制与十进制的转换
计算机内部使用二进制,而人类习惯于十进制。因此,数值数据在输入输出时需要进行进制转换。二进制转换为十进制可通过“按权展开”实现,而十进制转二进制则常用“除2取余法”(整数部分)和“乘2取整法”(小数部分)。
2.2 有符号数的表示
为表示负数,计算机中引入了符号位。常用的有符号数表示方法包括:
原码:最高位为符号位,0表示正,1表示负。简单直观,但加减运算复杂,且存在“+0”和“-0”两种零的表示。
反码:正数的反码与原码相同;负数的反码为其原码除符号位外按位取反。反码仍存在零的两种表示。
补码:现代计算机广泛使用的表示方式。正数的补码与原码相同;负数的补码为其反码加1。补码统一了零的表示,且减法可转换为加法,极大简化了硬件设计。
2.3 定点数与浮点数
定点数:小数点位置固定,包括定点整数和定点小数。结构简单,但表示范围有限。
浮点数:采用科学计数法的思想,由符号位、阶码和尾数组成,可表示极大或极小的数。IEEE 754标准是目前最常用的浮点数表示规范,包括单精度(32位)和双精度(64位)格式。
三、非数值数据的表示
3.1 字符编码
ASCII码:使用7位二进制表示128个字符,包括英文字母、数字及控制符。
Unicode:为统一全球字符表示而设计,常用UTF-8、UTF-16等编码方式,支持多语言文本。
3.2 图像、音频与视频的表示
这些数据通常经过采样、量化和编码后转换为二进制序列。例如:
图像可表示为像素矩阵,每个像素的颜色由RGB值编码;
音频可通过采样频率和量化位数数字化;
视频则可视为连续图像与音频的组合,常用编码标准如H.264、HEVC等。
四、BCD码及其运算
BCD码(Binary-Coded Decimal)是一种用二进制编码表示十进制数的方法,尤其适用于财务、仪表等需要高精度十进制运算的场合。
4.1 8421码
最常用的BCD码,是一种有权码,其名称来源于四位二进制位的权值分别为8、4、2、1。每一位的数值乘以其权值之和即为对应的十进制数。
加法运算
当两个8421码相加结果大于9(即二进制1001)时,由于4位二进制可表示16种状态,而8421码仅使用其中10种,因此需进行“加6修正”,以跳过无效编码(1010~1111)。
例如:
1 | 0101 (5) |
4.2 余3码
余3码是在8421码基础上加3得到的无权码。其优点是自补性,即对9的补码可通过按位取反实现,简化了某些运算。
运算时需根据是否进位进行调整:
有进位:结果加3;
无进位:结果减3。
4.3 2421码
2421码也是一种有权码,其权值从左至右为2、4、2、1。它通过约定高位区分0~4和5~9,从而在一定程度上解决了8421码加法进位的复杂性,但也引入了表示上的歧义。
五、数据运算与处理
5.1 算术运算
计算机中的算术运算主要基于加法器实现,乘法可通过加法与移位实现,除法则可通过减法与移位实现。浮点运算由专门的浮点运算单元(FPU)处理,遵循IEEE 754规定的运算规则。
5.2 逻辑运算
包括与(AND)、或(OR)、非(NOT)、异或(XOR)等,是计算机实现控制、判断与数据处理的基础。
5.3 移位运算
分为逻辑移位、算术移位和循环移位,用于实现乘除运算、数据提取与位操作等功能。
六、数据校验与容错
为保障数据在存储与传输中的正确性,计算机系统常引入校验机制:
奇偶校验:通过添加校验位使数据位中1的个数为奇数或偶数;
CRC校验:基于多项式除法,检测并纠正多位错误;
海明码:可检测两位错误并纠正一位错误,广泛应用于内存与通信系统。
七、总结
数据的表示与运算是计算机系统的基石。从最基本的二进制表示,到复杂的浮点运算与编码规范,再到高效可靠的校验机制,这一系列技术与方法共同支撑起现代计算机高效、准确的数据处理能力。理解这些内容,不仅是学习计算机组成原理的关键,也为后续体系结构、操作系统等课程打下坚实基础
- 本文作者: Kylin
- 本文链接: https://kylinnnnn.github.io/2023/05/15/数据的表示与运算/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!