专注 效率 记忆
预习 笔记 复习 做题
欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)
文章字体风格:
红色文字表示:重难点★✔
蓝色文字表示:思路以及想法★✔
如果大家觉得有帮助的话,感谢大家帮忙
点赞!收藏!转发!
本博客带大家一起学习,我们不图快,只求稳扎稳打。
由于我高三是在家自学的,经验教训告诉我,学习一定要长期积累,并且复习,所以我推出此系列。
只求每天坚持40分钟,一周学5天,复习2天
80天后我们学习完《深入理解计算机系统》
本课程来自b站 九曲阑干
【80天学习完《深入理解计算机系统》】第三天 2.3 整数运算
- 1. 255+1 = 0
- 2. 如何判断溢出
- 3. 逆元
- 4. 补码加法 正负溢出
- 两个正数相加 小于 0 正溢出
- 两个负数相加 大于0 负溢出
- 正溢出
- 负溢出
- 5. 乘法和位运算
- C语言类型转换
- -x = (~x)+ 1
- 1. 二进制表示浮点数
- V = (-1)^s^ × M × 2 ^E^
- 非规格数(M = 1 + f)规格化(M = f )
- E = e - bias
- bias = 2^8-1^-1
- 2. 非规格化的数的作用
- 浮点数的0
- 表示接近0的数
- 3. 特殊值
- 4. 类比于1字节表示 浮点数
- 5. 12345 和 12345.0 的二进制对比
- 6. 浮点数舍入
- 向上向下舍入 就画数轴
- 向偶数舍入 比如 1.5
- 7. 浮点数 加减乘除法可能不适合 结合律
- 8. 类型转换
- 小到大 不会溢出 可能会 舍入
- 大到小 可能溢出 或者 精度降低
- 向0舍入
- 1. int 转成 float(由于float的有效位是23位)
- 2. 返回补码最小值
- 3. -x = ~x + 1
- 为什么?
- x + (~x)= -1
- 全是1的二进制 值是-1
- 4. 无符号int 看成 float 然后返回*2的值
- 1. 先取到exp的值(判断是否为规格化的数)
- 2. 取frac(与exp一起判断是否为特殊值)
- 规格化的数:exp !=0 !=255
- 无穷大 exp = 255 并且frac = 0
- 不是一个数 exp = 255 并且 frac !=0
- 非规格化 exp = 0 f = 0 表示 0或者-0(看s)
- 非规格化 exp = 0 f !=0 表示非常接近0
- 答案:
- 1. 返回原数(0值 无穷大值 非数值)
- 2. 无限接近0的数 返回 M*2的值(因为E是为0)
- 3. 返回E*2的值(规格化)
- 4. 如果溢出 则返回特殊值
- 最终答案
- 5. int 和 float哪一个表示的范围大
- 6. 0.2的浮点数(无限循环小数)
1. 255+1 = 0
2. 如何判断溢出
3. 逆元
4. 补码加法 正负溢出
两个正数相加 小于 0 正溢出
两个负数相加 大于0 负溢出
正溢出
负溢出
5. 乘法和位运算
C语言类型转换
-x = (~x)+ 1
1. 二进制表示浮点数
V = (-1)s × M × 2 E
非规格数(M = 1 + f)规格化(M = f )
E = e - bias
bias = 28-1-1
2. 非规格化的数的作用
浮点数的0
表示接近0的数
3. 特殊值
4. 类比于1字节表示 浮点数
5. 12345 和 12345.0 的二进制对比
6. 浮点数舍入
向上向下舍入 就画数轴
向偶数舍入 比如 1.5
7. 浮点数 加减乘除法可能不适合 结合律
8. 类型转换
小到大 不会溢出 可能会 舍入
大到小 可能溢出 或者 精度降低
向0舍入
1. int 转成 float(由于float的有效位是23位)
2. 返回补码最小值
要求 常数不超过8bit
3. -x = ~x + 1
为什么?
x + (~x)= -1
全是1的二进制 值是-1
4. 无符号int 看成 float 然后返回*2的值
1. 先取到exp的值(判断是否为规格化的数)
2. 取frac(与exp一起判断是否为特殊值)
规格化的数:exp !=0 !=255
无穷大 exp = 255 并且frac = 0
不是一个数 exp = 255 并且 frac !=0
非规格化 exp = 0 f = 0 表示 0或者-0(看s)
非规格化 exp = 0 f !=0 表示非常接近0
答案:
1. 返回原数(0值 无穷大值 非数值)
2. 无限接近0的数 返回 M*2的值(因为E是为0)
3. 返回E*2的值(规格化)
4. 如果溢出 则返回特殊值
最终答案
5. int 和 float哪一个表示的范围大
6. 0.2的浮点数(无限循环小数)