深入理解计算机系统CS213学习笔记

Lecture 01

1. 计算机表示数字

int 整数运算可能会出现错误,超过32位时会出现溢出。

float 浮点数不适用结合律,因为浮点数表示的精度有限。

根其原因,是用有限的位数表示无限的数字空间。

2.利用分层的存储系统,使程序运行更快。

更重要的是,注意内存访问。C++不做内存边界检查。

例子:结构体内部的数据成员在内存中放在一起,当访问数组时,超过了数组的边界,但是不会做内存的边界检查,因此 会访问到其他数据,造成错误。

这种错误调试很难。所以,在自己写程序时,要手动添加边界检查。

理解数据结构的特点。

3.从程序的角度增加性能

一行一行的访问数据比一列一列的访问数据更好,这与内存的排列方式有关。

相关推荐
Dolphin_Home3 分钟前
Java Stream 数据处理笔记:从嵌套集合中过滤特定类别的Map
java·windows·笔记
盐焗西兰花10 分钟前
鸿蒙学习实战之路-Java 开发者快速上手 ArkTS 指南
java·学习·harmonyos
NZT-4817 分钟前
C++基础笔记(一)迭代器和vector
开发语言·c++·笔记
许小禾上学记19 分钟前
学习笔记 |【PPO × Family】第一课:开启决策 AI 探索之旅
人工智能·笔记·学习
以孝治家行动23 分钟前
慈明学校以孝治家阳光家教中心开展线上家风家教学习活动——共读经典故事,义工分享“感恩”与“坚韧”的生命体悟
学习
承渊政道33 分钟前
C++学习之旅【C++类和对象(上)】
c语言·c++·学习·编辑器
i.ajls1 小时前
强化学习入门-5(MAPPO)
笔记·机器学习·强化学习·mappo
代码游侠1 小时前
应用——Linux 标准IO编程
linux·前端·数据库·学习·算法
梦幻精灵_cq1 小时前
python-os.path的“世纪大阅兵”:两个函数-11条语句(2+9)定乾坤
python·学习
charlie1145141911 小时前
快速Git教程
开发语言·git·学习·版本控制