• 2017-2018-1 20155218 《信息安全系统设计基础》第3周学习总结


    2017-2018-1 20155218 《信息安全系统设计基础》第3周学习总结

    教材学习内容总结

    1. 在内存中排列字节的方式:小端法和大端法
    2. B2U:Binary to Unsigned
    3. 最高有效位Xw-1也成为符号位,他的权重为-2^(w-1),是无符号表示中全中的负数,符号位被设置为1时,表示值为负,当设置为0时,值为非负。
    4. w位补码所能表示的值的范围为TMin=-2(w-1)到TMax2(w-1)-1;
    5. 强制类型转换的结果保持位值不变,只是改变了解释这些位的方式。
    6. 表达式行x<y和表达式x-y<0会产生不同的结果。
    7. 在二进制小数中,增加二进制表示的长度可以提高表示的精度。
    8. IEEE浮点表示。;

    教材学习中的问题和解决过程

    • 问题1:计算机原理中的位向量
    • 问题1解决方案:位向量就是有固定长度w,由0和1组成的串。给出一个位向量并集的例子:a=[01101001]表示{0,3,5,6},b=[01010101]表示{0,2,4,6}。最终二者并集=[01000001]={0,6}.
    • 问题2:
    short int v = -12345;
    unsigned short uv = (unsigned short) v;
    

    v=-12345;uv=53191

    • 问题2解决方案:因为-12345的16位补码表示与53191的16位无符号数表示是一样的
    [1100111111000111]
    

    即强制类型转的结果保持位值不便,只是改变了解释这些位的方式。

    • 问题3:IEEE的浮点表示:
    • 解决方案:
      具体的看书看了几遍还是无法理解,所以只能借助例子来理解,希望老师可以讲解一下
    已知:整数3490593(16进制表示为0x354321)。求:其对应的浮点数3490593.0的二进制表示。

    解法如下:
    先求出整数3490593的二进制表示:
    H: 3 5 4 3 2 1 (十六进制表示)
    B: 0011 0101 0100 0011 0010 0001 (二进制表示)
    │←───── 21────→│

    即:
    1.1010101000011001000012×221
    可见,从左算起第一个1后有21位,我们将这21为作为浮点数的小数表示,单精度浮点数float由符号位1位,指数域位k=8位,小数域位(尾数)n=23位构成,因此对上面得到的21位小数位我们还需要补上2个0,得到浮点数的小数域表示为:
    1 0101 0100 0011 0010 0001 00

    float类型的偏置量Bias=2k-1-1=28-1-1=127,但还要补上刚才因为右移作为小数部分的21位,因此偏置量为127+21=148,就是IEEE浮点数表示标准:
    V = (-1)s×M×2E
    E = e-Bias
    中的e,此前计算Bias=127,刚好验证了E=148-127=21。

    将148转为二进制表示为10010100,加上符号位0,最后得到二进制浮点数表示1001010010101010000110010000100,其16进制表示为:
    H: 4 A 5 5 0 C 8 4
    B: 0100 1010 0101 0101 0000 1100 1000 0100
    |←──── 21 ─────→ |
    1|←─8 ─→||←───── 23 ─────→ |

    这就是浮点数3490593.0(0x4A550C84)的二进制表示。

    代码调试中的问题和解决过程

    • 问题1:出现内存错误
    • 问题1解决方案:这说明了从有符号数到无符号数的隐式强制转换,因为当length=0时,length-1为负数,结果得到了UMAX,使得比较总是为真,所以将length声明为int即可。

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 其他

    本周结对学习情况

    - [20155205](http://www.cnblogs.com/haoliberale/p/7613748.html)
       - 结对学习内容
        -第二章课本内容 
        -课下练习题
    

    结对照片:

    其他(感悟、思考等,可选)

    这一次课本的学习我是先大体看了一遍课本,然后按照蓝墨云上第二章的题目来仔细的看了知识点,第一次做大约用了3个小时。我想如果我不去做题,好多知识都是模棱两可的过去,即使是这样我也还有好多是不会的。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第三周 132/296 2/22 8/18

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    Android深入四大组件(九)Content Provider的启动过程
    mysql启动时报错:Starting MySQL... ERROR! The server quit without updating PID file (/opt/mysql/data/mysql.pid) 的解决方法
    定制rpm包-Yum环境搭建
    FPM定制RPM包实践
    nginx服务企业应用
    keepalived中的脑裂
    Linux 进程后台运行的几种方式(screen)
    ansible服务部署与使用
    HTTP服务原理
    KICKSTART无人值守安装
  • 原文地址:https://www.cnblogs.com/xzh1996/p/7668839.html
Copyright © 2020-2023  润新知