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

Lecture 01

1. 计算机表示数字

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

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

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

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

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

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

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

理解数据结构的特点。

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

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

相关推荐
浮游本尊6 小时前
React 18.x 学习计划 - 第十四天:实战整合与进阶收尾
前端·学习·react.js
The_Uniform_C@t27 小时前
PWN | 对CTF WIKI的复现+再学习 (第八期)
网络·学习·网络安全·二进制
崎岖Qiu7 小时前
【计算机网络 | 第十三篇】网络层服务的两种实现方式:无连接和面向连接
网络·笔记·计算机网络
山岚的运维笔记7 小时前
SQL Server笔记 -- 第65章:迁移 第66章:表值参数
数据库·笔记·sql·microsoft·sqlserver
前路不黑暗@8 小时前
Java项目:Java脚手架项目的登录认证服务(十三)
java·spring boot·笔记·学习·spring·spring cloud·maven
前路不黑暗@9 小时前
Java项目:Java脚手架项目的 C 端用户服务(十五)
java·开发语言·spring boot·学习·spring cloud·maven·mybatis
Hello_Embed10 小时前
Modbus 传感器开发:STM32F030 libmodbus 移植
笔记·stm32·学习·freertos·modbus
知识分享小能手10 小时前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 视图操作 — 语法知识点及使用方法详解(16)
sql·学习·sqlserver
快乐zbc11 小时前
苍穹外卖 - 菜品起售/停售复习笔记
java·笔记
前路不黑暗@11 小时前
Java项目:Java脚手架项目的 B 端用户服务(十四)
android·java·开发语言·spring boot·笔记·学习·spring cloud