zoukankan      html  css  js  c++  java
  • 20171025课堂实践+课后习题

    20171025课堂实践+课后习题

    第三题

    思路:

    • 写一个关于自己学号的代码,然后用GDB进行调试。

    `short int v = -学号后四位

    unsigned short uv = (unsigned short) v

    printf("v = %d, uv = %u ", v, uv);`

    • 在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图,要全屏,要包含自己的学号信息

    代码:

    `#include <stdio.h>

    void main(){

    short int v = -23;

    unsigned short uv = (unsigned short)v;

    printf("v=%d,uv=%u ",v,uv);

    }`

    7tCq6.png

    7tcxT.png

    第四题

    思路:

    • 1 通过输入gcc -S -o main.s main.c 将c程序”week0604学号.c“编译成汇编代码
      1. 删除汇编代码中 . 开关的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码

    7tT2c.png

    7tFZG.jpg

    第五题

    思路:

    • 使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的函数变化值和栈的变化。提交信息。

    aszwR.png

    代码托管

    课本2.96

    遵循位级浮点编码规则,实现具有如下原型的函数

    /*

    Compute (int) f.
    If conversion causes overflow or f is NaN, return 0x80000000
    /int floatf2i(flaotbits f);
    对于浮点数f,这个函数计算(int)f。如果f是NaN,你的函数应该向零舍入。如果f不能用整数表示(例如,超出表示范围,或者它是一个NaN),那么函数应该返回0x80000000 。 测试你的函数,对参数f可以取的所有2的32次方个1值求值,将结果与你使用机器的浮点运算得到的结果相比较。

    acMQS.png

    acQsg.png

    acGon.png

    心得:

    这道题中我学到了新的-lm指令,在Linux中用该指令可以连接数学库。

    课本2.97

    遵循位级浮点编码规则,实现具有如下原型的函数:

    /* Compute (float) i */

    floatbite floati2f(int i);

    对于函数i ,这个函数计算(float)i的位级表示。测试你的函数,对参数f可以取的所有2的32次方个值求值,将结果与你使用机器的浮点运算得到的2结果相比较。

    acNWV.png

    acUzT.png

    acrw9.png

  • 相关阅读:
    转载 如何去掉超链接文字下的下划线
    Fedora 15安装 VirtualBox 4.1
    庆祝开通!
    Delphi直接读写XML修改版
    Perforce的资料一点也没查到
    AxWebBrowser的Navigate2方法写参数的偷懒方法
    腾讯2012实习生面试
    如何让div在IE6下自适应
    PhpStorm修改字体
    监听url
  • 原文地址:https://www.cnblogs.com/fixedl/p/7751591.html
Copyright © 2011-2022 走看看