(学习笔记)第2章 信息的表示和处理

文章目录


线索栏

  1. 现代计算机表示一切信息的基石是什么? 为什么选择它,而不是十进制?
  2. "位+解释" 这一核心模式如何让我们表示万物?
  3. 本章将重点研究哪三种最重要的数字表示/编码?它们分别用于表示什么?
  4. 整数运算和浮点数运算在数学属性上有何根本不同?根源是什么?
  5. 为什么程序员必须了解数据的位级表示和运算属性?(三个原因)
  6. (旁注)C语言有哪些主要标准版本?GCC如何指定编译标准?
  7. (旁注)阅读本章数学内容时,应采用什么方法?

笔记栏

本章核心:探究计算机如何用有限的二进制位表示数字(整数、实数),以及这些表示方式如何决定了运算的属性和局限性。

1.信息的基石:二进制位

1)事实

所有信息均以二值信号(位/Bit) 表示。

2)选择二进制的原因

(1)物理实现简单可靠:易于用物理状态表示(穿孔、电压、磁场方向)。

(2)电路简单可靠:使得超高密度集成成为可能(芯片上数十亿电路)。

3)"位+解释"模式

单独的位无用,但将位组合在一起并赋予解释,就能表示任何有限集合的元素(如数字、字符)。

2.三种核心的数字表示

(1)无符号编码:表示大于等于零的整数。

(2)补码编码:表示有符号整数(正、负、零)的最常用方式。

(3)浮点数编码:基于二进制科学计数法,近似表示实数。

3.计算机运算的特性与后果

1)有限性导致的溢出

用有限位表示数字,结果超出范围时会发生溢出,可能导致反直觉的结果。

例子:在32位int系统中,200 * 300 * 400 * 500 结果为负数 -884,901,888,但运算保持一致(满足结合律/交换律)。

2)整数 vs. 浮点数运算

(1)整数:表示范围较小,但精确。运算具有许多熟悉的整数算术属性(如结合律)。

(2)浮点数:表示范围大,但近似。运算不具有结合性等属性。

(3)例子:(3.14+1e20)-1e20 结果为 0.0,而 3.14+(1e20-1e20) 结果为 3.14。

4.程序员为何必须理解这些?

(1)正确性与可移植性:确保程序在所有数值范围和不同机器上行为正确。

(2)安全性:许多安全漏洞源于算术运算的微妙细节。

(3)理解底层代码:是学习机器级编程(第3章)和编译器优化的基础。

【旁注1:怎样阅读本章】

(1)方法:内容以"原理→示例与讨论→(推导)"的结构呈现。

(2)建议:重在建立直觉,理解原理和启示。初次阅读可跳过复杂推导,通过练习题巩固。

【旁注2:C编程语言的演变与编译】

(1)标准版本:贝尔实验室C → ANSI C (C89)→ ISO C90​ → ISO C99​ → ISO C11。后续大多向后兼容。

(2)GCC编译选项:用 -std= 指定标准,如 -std=c11。-ansi 指代 C90。


总结

本章开篇确立了计算机世界的根本表示法------二进制,并指出"位+解释"是构建一切数字表示的通用范式。核心任务是掌握无符号、补码、浮点数这三种将二进制模式映射到数学意义的编码方案。

关键认知在于:由于表示是有限的,计算机算术并非完美的数学运算。整数运算精确但可能溢出;浮点数运算范围大但是近似的,且不遵守结合律。这种"有限性"与"近似性"是程序中错误和安全漏洞的潜在根源。

因此,深入理解位级表示,是程序员编写正确、可靠、可移植、安全代码的必备基础,也是通往机器级思维的关键一步。旁注提供的阅读方法和语言背景,为后续的学习提供了实用的方法论和历史语境。

相关推荐
中屹指纹浏览器1 天前
2026基于内核隔离的浏览器环境虚拟化技术在企业数字化运营中的应用研究
经验分享·笔记
一轮弯弯的明月1 天前
Python基础-速通秘籍(下)
开发语言·笔记·python·学习
charlie1145141911 天前
2026年正点原子开发板移植方案——从0开始的Rootfs之路(3)inittab 与 init 系统:Linux 启动的“第一号进程“全解析
linux·驱动开发·学习·嵌入式开发·嵌入式linux
wsx_iot1 天前
TDengine学习
数据库·学习·tdengine
AI成长日志1 天前
【笔面试算法学习专栏】二分查找专题:力扣hot100经典题目深度解析
学习·算法·面试
nqqcat~1 天前
shell入门
笔记
Aaswk1 天前
刷题笔记(回溯算法)
数据结构·c++·笔记·算法·leetcode·深度优先·剪枝
m0_564914921 天前
AI学习课堂网站丨OPENMAIC丨清华团队开源项目
学习
-许平安-1 天前
MCP项目笔记六(PluginsLoader)
c++·笔记·raii·plugin system
开源盛世!!1 天前
3.26-3.27学习笔记
笔记·学习