CSAPP 第二章 笔记
信息存储
- 十六进制表示法
- 0x开头
- 字数据大小
- 寻址和字节顺序
- 大端法/小端法
- 大端法/小端法
- 布尔代数
- C中逻辑运算
- C中移位运算
- 右移(算数/逻辑)
整数表示
无符号数编码
补码编码
各种转换
-
有无符号数之间的转换
-
不同字长整数之间的转换
- 小->大
- 无符号数:补零
- 有符号数:补符号位
- 大->小
- 截断(取模)
- 小->大
整数运算
无符号数
-
加法
-
取反
-
乘法
-
与整数相乘
优化为加减和移位相组合 -
除以2的幂
- 逻辑右移
补码
- 加法
- 非
其中-x
可以表示为补码 - 乘法
- 与整数相乘
优化为加减和移位相组合 - 除以2的幂
- 算术右移
x<0
时,加入偏置(1<<k)-1
- 算术右移
浮点数
IEEE浮点表示
- 形式
- s:符号
- M:尾数
- E:阶码
- 格式
- 单精度时 1+8+23
- 双精度时 1+11+52
- 编码值
- 规格化
- 其中偏置量bias与E的位数k有关
- 非规格化
- 无穷大
- NaN(不是一个数)
- 规格化
示例
舍入
其中,向偶数舍入:
- 目的:避免统计偏差(一半向上舍入,一般向下舍入)
- 二进制中向偶数舍入:0为偶,1为奇
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!