zoukankan      html  css  js  c++  java
  • 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小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    巴洛克式和哥特式的区别
    推荐阅读书籍,是时候再行动起来了。
    AtCoder ABC 159F Knapsack for All Segments
    AtCoder ABC 159E Dividing Chocolate
    AtCoder ABC 158F Removing Robots
    AtCoder ABC 158E Divisible Substring
    AtCoder ABC 157F Yakiniku Optimization Problem
    AtCoder ABC 157E Simple String Queries
    AtCoder ABC 157D Friend Suggestions
    AtCoder ABC 156F Modularness
  • 原文地址:https://www.cnblogs.com/xzh1996/p/7668839.html
Copyright © 2011-2022 走看看