1.1.1 数据的表示概述
本节导学:数据表示是后面所有计算题的地基
课程开头先提醒:这一章不是孤立的概念题,而是后面主存编址、IP 地址、补码读值、浮点运算、逻辑表达式判断的共同基础。计算机和人最大的差别在于:人可以直接理解十进制、文字、图片和声音;机器最终只能稳定地区分电信号的两种状态,也就是 0 和 1。
因此,“数据表示”要解决的不是“把十进制换成二进制”这么窄的问题,而是下面这条链路:
现实信息
↓ 编码规则
0/1 序列
↓ 固定字长、位权、码制、格式
可存储、可传输、可运算的数据1. 为什么所有信息都要落到 0/1
硬件层面最可靠的状态通常是两态:高/低电平、通/断、磁化方向等。二进制不是因为“人喜欢 0 和 1”,而是因为工程实现稳定、抗干扰、逻辑电路简单。
| 信息类型 | 人的理解方式 | 机器内部最终形式 | 典型考点 |
|---|---|---|---|
| 数值 | 25、3.14 | 二进制整数、定点数、浮点数 | 进制转换、码制、浮点 |
| 字符 | A、中 | 字符编码后的二进制 | ASCII、Unicode、UTF-8 |
| 图像 | 像素或图形对象 | 像素矩阵或矢量描述 | 位图、矢量图、容量计算 |
| 声音 | 连续声波 | 采样、量化、编码后的数据 | 采样频率、量化位数 |
| 条件判断 | 真/假 | 1/0 或布尔值 | 逻辑运算、短路求值 |
这也是为什么本节后面会依次引出进制、码制、浮点数和逻辑运算:它们都在回答“0/1 这串东西到底如何解释”。
2. 进制:解决数值怎样写
进制解决的是“一个数值用什么基数展开”。十进制是人类日常习惯,二进制适合硬件,十六进制适合压缩展示长二进制串。
这里
| 场景 | 为什么会用到进制转换 |
|---|---|
| 主存编址 | 地址常用十六进制给出,本质要按二进制位数计算容量 |
| IP 地址与子网 | 表面是点分十进制,掩码和网络号计算必须落到二进制 |
| 机器码/补码读值 | 十六进制机器数要先拆成二进制,再按码制解释 |
3. 码制:解决正负号和机器运算
二进制只提供数码,不天然提供“正负号”。如果简单把最高位当符号位,就得到原码,直观但运算麻烦;继续发展出反码、补码、移码,是为了让固定字长里的负数更适合硬件处理。
| 问题 | 进制能否解决 | 需要码制解决的点 |
|---|---|---|
数字 1010 是多少 | 可以,按基数和位权解释 | 不涉及正负 |
1000 0000 是 128 还是 -128 | 不够 | 要看题目说原码、补码还是移码 |
| 计算机如何统一做加法和减法 | 不够 | 补码让减法转成加法 |
所以“进制”和“码制”不要混:进制回答数值如何展开,码制回答固定字长的二进制串如何表示符号、范围和运算规则。
4. 浮点数:解决范围与精度的权衡
定点整数和定点小数的小数点位置固定,表示简单,但表达范围受限制。浮点数借用了科学计数法思想:
其中
| 字段 | 负责什么 | 常见考法 |
|---|---|---|
| 阶码 | 控制数量级,决定表示范围 | “范围由谁决定” |
| 尾数 | 保存有效数字,决定精度 | “精度由谁决定” |
后面 1.1.4 会展开对阶、尾数运算和规格化。本节只要先建立大方向:浮点数不是更“准确”的表示,而是在有限位宽下用近似换取更大的范围。
5. 逻辑运算:解决真假判断和位级处理
课程最后提到逻辑运算,是因为程序设计离不开条件判断。算术运算处理数值大小,关系运算得到真假,逻辑运算再组合多个真假条件。
算术运算:a + b、a * b
关系运算:a > b、a == b
逻辑运算:(a > b) && (c != 0)二进制里的 0 和 1 既可以表示数,也可以表示假和真。写程序时的 if、while,底层都要落到这种真假判断;做位运算时,还会把多个二进制位逐位进行与、或、异或等操作。
6. 本节学习路线
| 后续小节 | 本节先建立的理解 | 学习时要抓的主线 |
|---|---|---|
| 1.1.2 进制转换 | 二进制与十六进制是考试计算工具 | 位权、除基取余、分组转换 |
| 1.1.3 码制 | 同一串二进制要按规则解释 | 原码到补码的技术取舍 |
| 1.1.4 浮点数 | 范围和精度不能同时无限提高 | 阶码决定范围,尾数决定精度 |
| 1.1.5 逻辑运算 | 程序条件也要落到真假值 | 优先级、短路、按位运算 |
本节的核心结论是:机器只能处理 0/1,但 0/1 本身没有意义;真正有意义的是“解释规则”。进制、码制、浮点格式和逻辑规则,就是软件设计师考试里最常用的几类解释规则。
🧪 例题(按难度)
简单(3题)
中级(3题)
困难(1题)
📚 本课小结
- 数据表示:将现实信息转换为二进制形式
- 数制系统:二、八、十、十六进制及其转换
- 存储单位:bit、Byte、KB、MB、GB的关系
- 字符编码:ASCII和Unicode的特点
- 多媒体:图像、音频的数字化原理
💡 学习提示
数据表示是计算机科学的基础,理解这些概念对后续学习至关重要。建议:
- 多做进制转换练习
- 了解常用ASCII码值
- 理解数字化的基本原理
- 关注实际应用场景