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

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

教材学习内容总结

  1. 信息存储:机器级程序将内存看作一个非常大的字节数组,称为虚拟内存。

  2. 字数据大小:字长决定的最重要的系统参数是虚拟空间的最大大小。大多数64位机器可以运行32位的程序,这是一种向后兼容

  3. 寻址和字节顺序:对于跨越多字节的程序对象,我们必须建立两个规则:1>这个对象的地址是什么,2>在内存中如何排列这些字节。几乎在所有的机器上,多字节对象都被存储为连续的字节序列。

  4. 布尔运算&逻辑运算

  5. 表示字符串:文本数据比二进制数据具有更强的平台独立性

  6. 无符号数的编码:两个双射

  7. 有符号数和无符号数之间的转换:强制类型转换会改变数值,但是不会改编为表示。

  8. C语言中的有符号数和无符号数:在执行一个运算时,如果它的一个运算术士有符号的而另一个是无符号的,那么C语言会隐式的将有符号参数强制类型转换为无符号数。

  9. 整数运算:加减乘的溢出以及各类运算的推导过程

  10. IEEE浮点表示:重点掌握了公式的表达以及参数的含义

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

  • 问题1:编写判断有符号数相加是否溢出的函数tadd_ok()

  • 问题1解决方案:看了参考答案,一开始想的是应该和无符号数差不多,所以一直在朝着这个方向思考,参考答案非常简单即溢出的情况有两种,一是两数为正和为负,二是两数为负和为正,这确实是比较明显的溢出情况。但我还存在疑问,有没有两个正数相加和依旧为正但是已经产生溢出的情况呢?是没有的,这个答案从二进制数运算的角度来看更加直接。

  • 问题2:习题2.40

  • 问题2解决方案:可能会有同学向我一样一开始不理解这个题目的含义事实上我们把这个题目与我们之前学过的Xtime算法结合起来就额很好理解,这是一种基于2的幂次的特点对该算法的优化。

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

  • 问题1:在测试溢出程序时注意到,当命令行输入两个参数后,它们分别存储在argv[1]和argv[2],那么argv[0]是用来存放程序名的吗?./a.out应该是程序启动的命令为什么会作为参数输入呢?
  • 未解决
  • 问题2:上一次代码统计成功后这周使用./statistics再次出现找不到命令的错误
  • 问题2解决方案:通过find . -name statistics找到了statistics文件的路径但是还是查找不到先用学习伙伴的虚拟机统计了,后续再进行解决

后续!!输入sudo chmod 755 statistics为文件加权限之后再输入./statistics就没问题啦!

代码托管

上周考试错题总结

  • 本周实践的问题是在实践的时候出现了以前没出现过的段错误,是内存空间的分配问题,这也是我在编程过程中常会出现的问题,在这周的学习中对操作系统的存储方式以及各类文件的存储特点有了更多的了解,在C语言编程的这方面方面也需要以后的继续改进。

本周结对学习情况

- [20155204](http://www.cnblogs.com/20155204wh/)

- 结对学习内容
    互相学习吧,大家在编程的时候各有长短

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

这周的学习内容主要是基于之前学习过的数制及其转换的内容,对其在操作系统中的具体运行和原理进一步的阐述,对之前学过的知识有了新的认识,深入地了解更有助于理解和记忆,不过对乘法的形式和IEEE标准还有些不太理解,希望老师课上多给一些指导吧。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 1/1 6/6
第三周 156/388 2/3 15/21 这周除课堂实践外,大多数都是知识性的学习内容,代码量确实太少从下周起就要抓紧了
  • 计划学习时间:15小时

  • 实际学习时间:15小时

  • 改进情况:

参考资料

原文地址:https://www.cnblogs.com/xhwh/p/7673912.html