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

Week6课下作业的更多相关文章

  1. 20175221 MyCP(课下作业,必做)

    MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...

  2. 20175221 《Java程序设计》迭代和JDB(课下作业,选做):

    20175221 <Java程序设计> 迭代和JDB(课下作业,选做): 任务详情 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功 ...

  3. 20175333曹雅坤MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...

  4. MyOD(课下作业,选做)

    MyOD(课下作业,选做) 代码要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...

  5. 迭代和JDB(课下作业,选做)

    迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...

  6. ###20175311MyCP(课下作业,必做)

    MyCP(课下作业,必做) 作业题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...

  7. MyCP(课下作业,必做)

    MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2 的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...

  8. 20175212课下作业 MyCP

    20175212课下作业 MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2 ...

  9. 必做课下作业MyCP

    20175227张雪莹 2018-2019-2 <Java程序设计> 必做课下作业MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支 ...

随机推荐

  1. 021.11 IO流 序列流

    序列流:SequenceInputStream特点:流对象有序排列解决问题:将多个输入流合并成一个输入流,将多个源合并成一个源,对于多个源的操作会变简单. 构造函数参数就是输入流,一初始化就合并了多个 ...

  2. Asp.net & Aspose.cells 导出

    protected void btnExport_Click(object sender, EventArgs e) { DataTable tbBooks = (DataTable)Session[ ...

  3. 查看linux上面是否有安装redis,redis启动

    1.检测是否有安装redis-cli和redis-server; [root@localhost bin]# whereis redis-cli redis-cli: /usr/bin/redis-c ...

  4. springMVC <mvc:interceptors>拦截器的使用

    首先在springMVC.xml配置如下代码 <!-- 拦截器 --> <mvc:interceptors> <bean class="com.base.Acc ...

  5. [19/04/27-星期六] GOF23_结构型模式(装饰模式、外观模式)

    一.装饰模式(decorator) 职责:动态的为一个对象增加新的功能. 是一种用于代替继承的技术,无须通过继承增加子类就能扩展对象的新功能.使用对象的关联关系代替继承关系,更加灵活,避免类体系的膨胀 ...

  6. Spyder中figure显示设置

    Spyder是Python的一个IDE.和其他的Python的IDE相比,它最大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值. 如果不是进行大规模的工程开发,重点专注 ...

  7. random模块 参生随机数

    记得要import random模块 随机整数: >>> import random >>> random.randint(0,99) 21 随机选取0到100间的 ...

  8. 面试准备——(五)Jmeter

    面试中遇到的问题: 1. 如何使用Jmeter进行并发测试 2. 如何设置并发量为1000 3. 如果http请求每个都不一样,如何配置 4. 如何设置sessionID 一.安装配置 1. 在Ter ...

  9. C#中如果用await关键字来await一个为null的Task对象会抛出异常

    await & async模式是C#中一个很重要的特性,可以用来提高异步程序(多线程程序)的执行效率.但是如果尝试用await关键字来await一个为null的Task对象,会导致程序抛出Nu ...

  10. php生成word文档

    使用fopen文件操作函数来做,需要注意的直接生成中文文件名会乱码,(生成word和微软的编码不一样)需要转码生成.word内容保持utf8编码就好. $file_name = iconv(" ...