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小时

  • 改进情况:

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

参考资料

原文地址:https://www.cnblogs.com/fengxingck/p/7674911.html