【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】

2.5 datalab && 习题

    • 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的浮点数(无限循环小数)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第1张图片

1. int 转成 float(由于float的有效位是23位)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第2张图片
【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第3张图片

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第4张图片

2. 返回补码最小值

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第5张图片
要求 常数不超过8bit
【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第6张图片

3. -x = ~x + 1

为什么?

x + (~x)= -1

全是1的二进制 值是-1

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第7张图片

4. 无符号int 看成 float 然后返回*2的值

1. 先取到exp的值(判断是否为规格化的数)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第8张图片

2. 取frac(与exp一起判断是否为特殊值)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第9张图片

规格化的数:exp !=0 !=255

无穷大 exp = 255 并且frac = 0

不是一个数 exp = 255 并且 frac !=0

非规格化 exp = 0 f = 0 表示 0或者-0(看s)

非规格化 exp = 0 f !=0 表示非常接近0

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第10张图片

答案:
1. 返回原数(0值 无穷大值 非数值)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第11张图片

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第12张图片

2. 无限接近0的数 返回 M*2的值(因为E是为0)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第13张图片

3. 返回E*2的值(规格化)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第14张图片
【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第15张图片

4. 如果溢出 则返回特殊值

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第16张图片

最终答案

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第17张图片

5. int 和 float哪一个表示的范围大

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第18张图片

6. 0.2的浮点数(无限循环小数)

【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第19张图片
【80天学习完《深入理解计算机系统》】第五天 2.5 datalab && 习题【int转float的精度舍入】【返回补码最小值也就是-1如何返回】【无符号数看成float后*2的返回值】【0.2】_第20张图片

你可能感兴趣的:(80天学完,深入理解计算机系统,学习)