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

Lecture 01

1. 计算机表示数字

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

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

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

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

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

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

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

理解数据结构的特点。

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

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

相关推荐
悠哉悠哉愿意几秒前
【嵌入式学习笔记】GPIO与LED
笔记·单片机·嵌入式硬件·学习
QT 小鲜肉4 分钟前
【Linux命令大全】001.文件管理之locate命令(实操篇)
linux·运维·服务器·chrome·笔记
崇山峻岭之间9 分钟前
Matlab学习记录11
开发语言·学习·matlab
Mabnus10 分钟前
降钙素基因相关肽CGRP
学习
Vic1010117 分钟前
Redis防重复点击与分布式锁实现方案对比笔记
java·redis·笔记·分布式
皮秒亿20 分钟前
谷歌浏览器在线升级指南
笔记
d111111111d22 分钟前
在stm32中什么是hal库,什么是标准库,二者的区别?
笔记·stm32·单片机·嵌入式硬件·学习
Yiii_x28 分钟前
基于多线程机制的技术应用与性能优化
java·经验分享·笔记
后端小张30 分钟前
【AI 学习】LangChain框架深度解析:从核心组件到企业级应用实战
java·人工智能·学习·langchain·tensorflow·gpt-3·ai编程
老王熬夜敲代码37 分钟前
TCP相关问题的解决
linux·网络·笔记·网络协议