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

Lecture 01

1. 计算机表示数字

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

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

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

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

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

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

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

理解数据结构的特点。

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

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

相关推荐
励志不掉头发的内向程序员10 小时前
【LibreCAD 2D架构】从 addHistory 到 RS_UndoCycle:LibreCAD 里的两套 History 与撤销机制
开发语言·c++·qt·学习·系统架构
`流年づ10 小时前
人工智能学习笔记 - 自动微分
人工智能·笔记·学习
那年窗外下的雪.10 小时前
AIDC 学习日志|第 24 天|设备输出反推与 MAC Flapping 定位
网络协议·学习·tcp/ip·http·macos·tcpdump
minglie110 小时前
espidf驱动SPI ST7735S LCD
学习
༄久梦༒长醉༻10 小时前
技术笔记——Git Worktree工作树
笔记·git
雨田言炎11 小时前
STM32之自定义协议帧格式
网络·笔记·stm32·单片机
kaixin_啊啊11 小时前
Codex论文辅助全流程
人工智能·笔记·学习·ai·大模型
愚公移山填海11 小时前
【无标题】
笔记·python·学习·pycharm
边境悍匪11 小时前
蜗牛学苑 Java 智能体学习 Day41|ElementPlus 布局、Vue‑Router 登录、Axios 思维导图复盘
java·vue.js·学习
江湖人称菠萝包11 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter5-剪贴板
windows·笔记