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

Lecture 01

1. 计算机表示数字

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

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

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

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

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

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

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

理解数据结构的特点。

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

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

相关推荐
CarIise17 分钟前
C语言基础课程笔记:硬件原理、数据类型、结构体与格式化输入输出详解
c语言·开发语言·笔记
Orange_sparkle1 小时前
从五个 TypeScript 文件看懂 Coding Agent:一次 nano-pi 学习复盘
javascript·学习·typescript
m4Rk_1 小时前
【论文阅读】Agent 记忆机制(40):HiAgent——通过子目标级记忆提升长程任务执行能力
论文阅读·人工智能·学习·开源·github
今儿敲了吗1 小时前
CN——数据链路层(下)
网络·笔记
RainCityLucky1 小时前
Java Swing 自定义组件库分享(十六)
java·笔记·后端
richard_yuu1 小时前
JSON vs XML vs 二进制:3种序列化终极选型
xml·c++·qt·学习·json
迪丽热爱2 小时前
多媒体应用5-817
学习
世人万千丶2 小时前
收纳格卡片风:ArkUI 让鸿蒙物品清单像收纳盒贴标
学习·华为·harmonyos·鸿蒙
wy_hhxx2 小时前
AI Agent & Harness Engineering 笔记
人工智能·笔记
MartinYeung52 小时前
[论文学习]X-Boundary:为LLM建立精确安全边界以抵御多轮越狱攻击
学习·安全