zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155301 《信息安全系统设计基础》第3周学习总结

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

    教材学习内容总结

    • 在C语言中0x或者0X开头的数字常量被认为是十六进制的值,可以是大小写混合的。
    • 计算机的字长,指明指针数据的标称大小,字长决定的系统参数就是虚拟地址空间的最大大小。近些年计算机从32位到64位的转移。
    • 该命令编译程序prog.c可以运行在32位或者64位上
    gcc -m32 prog.c
    

    该命令编译程序prog.c可以运行在64位上

    gcc -m64 prog.c
    
    • 寻址方式有两种,大端法和小段法,大端法是最高有效字节在最前面,小端法是最低有效字节在最前面。

      例:0x00003039,大端法:00003039 小端法:39300000

    • 布尔代数:有运算符 ~ & | ^分别对应逻辑运算的NOT AND OR 异或。

      有分配律,a&(b|c)=(a&b)|(a&c),a|(b&c)=(a|b)&(a|c)

    • 逻辑运算:

      逻辑运算的计算方法:所有非零参数都代表TRUE,0参数代表FALSE

      逻辑运算的结果:1-代表TRUE,或者,0-代表FALSE

    • 移位右移,分为算数移位和逻辑移位,算数右移是在左端补k个最高有效位的值,逻辑右移是在左端补0。对于有符号数,基本上所有机器都会选择算数右移,对于无符号数右移必须输逻辑的。在Java中>>表示算数右移,>>>表示逻辑右移。

    • c语言中的有符号数与无符号数的转换原则是底层的位保持不变

    • 补码范围是不对称的,这是因为以1开头的一半的位模式表示负数,而以0开头的表示非负数,所以造成了不对称性。

    • 截断数字:减少表示一个数字的位数,这么做可能会改变它的值。

      例如:将一个w位的数截断为k位数字时,就会丢弃高w-k位。

      对于无符号数x来说,截断它到k位的结果就相当于计算 xmod (2^k)
      对于有符号数来说,先按照无符号数截断,然后再转化为有符号数。

    • C语言中有符号数与无符号数一起运算,有符号数会强制转化为无符号数,对于“和”这种运算来说,会导致非直观的结果,例如:-1<0U,第二个是无符号数,所以第一个就会转化为无符号数,即4294967295U<0U

    • 扩展数字的位标识,无符号数扩展为一个更大的数据类型,在开头添加0,称为零扩展,将补码转化为一个更大的数据类型,可以执行一个符号扩展,在表示中添加最高有效位的值。

    • 无符号数加法,参数x和y定义为,x>=0,y<2w,对于x+y的位级表示,简单丢弃任何权重大于2w-1的位就可以计算出和模2w

    • 二进制小数
      小数的二进制表示法只能表示那些能够被写成X (2^y)的数,其他的值只能近似的表示。

      权重:
      以小数点为界,
      左边第i位,权重为2的i次幂
      右边第i位,权重为2的-i次幂

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

    问题1:不明白教材里面的u是什么意思。

    查资料知道:数字后面带个U是表示无符号类型的数据。U是unsigned的首字母

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


    当参数length等于0的时候,出现了错误,但实际上应该是返回0.0

    代码托管

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

    上周考试错题总结

    • 错题1及原因,理解情况
    • 错题2及原因,理解情况
    • ...

    结对及互评

    点评模板:

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

    本周结对学习情况

    - [20155317](http://www.cnblogs.com/wxwddp/p/7671075.html)
    - 结对照片
    - 结对学习内容
        - XXXX
        - XXXX
        - ...
    

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

    xxx
    xxx

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 2/4 18/38
    第三周 500/1000 3/7 22/60
    第四周 300/1300 2/9 30/90

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

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

    • 计划学习时间:XX小时

    • 实际学习时间:XX小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    centos 修改语言、时区
    去除 ufeff
    Docker介绍及使用
    消息队列
    数据结构与算法
    Haystack
    Python面向对象之魔术方法
    关于Redis处理高并发
    Redis
    RESTful规范
  • 原文地址:https://www.cnblogs.com/fengxingck/p/7674911.html
Copyright © 2011-2022 走看看