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页的图对应学习

  • 相关阅读:
    JMeter+ant+jenkins自动化持续集成
    如何保证线程按顺序执行
    Java多线程和死锁
    java基础总结
    一、java自带的观察者模式
    一.HttpClient、JsonPath、JsonObject运用
    二.创建maven工程及下载需要的jar包
    一.Maven的安装和配置整理
    sql 关键词语句
    PHP5常量
  • 原文地址:https://www.cnblogs.com/hpl20155329/p/7751826.html
Copyright © 2011-2022 走看看