1. 数据表示基础概念解析
计算机系统中所有数据最终都以二进制形式存储和处理。理解数据表示是计算机科学的基础,它决定了我们如何存储、传输和计算各种类型的信息。
1.1 数值数据的二进制表示
计算机使用二进制系统表示数值,每位二进制数称为一个比特(bit)。8个比特组成一个字节(byte),这是计算机存储的基本单位。数值表示主要分为两大类:
- 无符号数:所有位都用于表示数值大小
- 有符号数:最高位表示符号(0为正,1为负),其余位表示数值
例如,8位二进制数:
- 无符号:11111111表示255
- 有符号:01111111表示+127,11111111表示-127(原码表示)
1.2 原码、反码与补码
有符号数有三种主要表示方法:
-
原码表示法:
- 最高位为符号位(0正1负)
- 数值部分用二进制绝对值表示
- 例如:+5 → 00000101,-5 → 10000101
-
反码表示法:
- 正数与原码相同
- 负数符号位不变,数值位取反
- 例如:-5 → 11111010
-
补码表示法:
- 正数与原码相同
- 负数是在反码基础上加1
- 例如:-5 → 11111011
补码是现代计算机最常用的表示方法,因为它解决了原码和反码中存在的"正负零"问题,并且加减法运算可以统一处理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 定点数与浮点数表示
2.1 定点数表示
定点数将小数点固定在某个特定位置,分为:
- 纯整数:小数点固定在最低位右侧
- 纯小数:小数点固定在最高位左侧
定点数表示示例(Q格式):
- Q15:16位数,1位符号,15位小数
- Q1.30:32位数,1位符号,1位整数,30位小数
定点数运算速度快,硬件实现简单,但表示范围有限,需要程序员手动处理溢出和精度问题。
2.2 浮点数表示
浮点数使用科学计数法表示,由三部分组成:
- 符号位(S):1位,表示正负
- 指数部分(E):表示2的幂次
- 尾数部分(M):表示有效数字
IEEE 754标准定义了两种常见浮点格式:
- 单精度(32位):1位符号,8位指数,23位尾数
- 双精度(64位):1位符号,11位指数,52位尾数
浮点数表示范围大,精度高,但运算复杂,硬件成
