zoukankan      html  css  js  c++  java
  • Week6课下作业

    课本练习p2.96 p2.97

    浮点数

    1. float 单精度浮点数(32位)
    2. double 双精度浮点数(64位)
    • 练习对应书上内容P78--P81页

    知识点是IEEE浮点表示


    1. 符号(sign):s决定这个数是负数(s=1)还是正数(s=0),而对于数值0的符号位解释做特殊情况处理。

    2. 尾数(significand):M是一个二进制小数,它的范围是,或者是。

    3. 阶码(exponent):E的作用是对浮点数加权,这个权重是2的E次冪(可能是负数)。

    对于float而言,符号位用1位表示,尾数M用8位表示,阶码E用23位表示。而对于double而言,符号位1位,尾数11位,阶码52位
    

    文字描述可能有些不太好理解,配上书本p78页的图就可以更好地理解。

    题目要求

    /*
    *Compute (int)f.
    *If conversion causes overflow or f is NaN,return 0x80000000 
    */
    int float_f2i(float _bits f);
    

    对于浮点数f,这个函数计算(int)f.如果f是NaN,向0舍入。如果f不能用整数表示,那么函数应该返回0x80000000.

    1. 对于浮点数f,这个函数计算(float)f的位级表示.
    /*Compute (float)i*/
    float_bits float_i2f(int i);
    

    课上练习1

    课上练习2

    课上练习3

    课上练习4

    遇见的问题

    • 课上做实践的时候被段地址已转储。
    • 课下做实验楼的时候段错误

    解决和学习。

    首先明白段错误的定义;段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。
    根据定义回头看自己的代码。发现应该是字符串复制哪里出现了问题。
    -还有那些情况会出现段错误(核心已转储)的错误呢。在网上学习找到了相关博客,并进行学习。

    1. 访问不存在的内存地址
    2. 访问系统保护的内存地址
    3. 访问只读的内存地址
    4. 栈溢出

    段错误的调试方法

    1. 使用printf输出信息
    2. 使用gcc gdb

    段错误参考资料

    浮点数编码参考资料 建议和书上的P78页的图对应学习

  • 相关阅读:
    hdu 1269 迷宫城堡 (并查集)
    hdu 1272 小希的迷宫 (深搜)
    hdu 1026 Ignatius and the Princess I (深搜)
    hdu 1099 Lottery
    hdu 1068 Girls and Boys (二分匹配)
    几个基础数位DP(hdu 2089,hdu 3555,uestc 1307 windy 数)
    hdu 1072 Nightmare (广搜)
    hdu 1398 Square Coins (母函数)
    hdu 1253 胜利大逃亡 (深搜)
    hdu 1115 Lifting the Stone (求重心)
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/7751826.html
Copyright © 2011-2022 走看看