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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017-2018-1 20155208 《信息安全系统设计基础》第四周学习总结相关的知识,希望对你有一定的参考价值。

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

教材学习内容总结

实验楼学习

利用假期的时间,我重新从头开始学习了娄老师的私课《深入理解计算机系统》 的实验楼:我重新学习了第一课和第二课,并且根据第三课的内容完成了第二周的作业。

技术分享

关于Vim编辑器的学习,我上学期自己也进行了一个总结,有想看的同学也可以看一下那篇博客: Vim编辑器学习经验

教材第二章学习

  • 一个字节由8位组成
  • 在C语言中,以Ox和OX开头的数字常量被认为是十六进制的值。
  • 其他进制表示法:二进制(B),十进制(D),八进制(O或者Q),十六进制(H)

进行书上练习2.4

注意进行十六进制加减法时的进位和退位时每个单位是以16的n次幂为基础进行的。

  • 理论来说,对于一个字长为w位的机器来说,虚拟地址的范围是0~2w-1。程序最多访问2w个字节。
  • C语言支持整数和浮点数的多种数据格式。
  • 在几乎所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为使用地址中最小的地址。
  • C语言中的typedef声明提供了一种给数据类型命名的方式。这能极大地改善代码的可读性,因为深度嵌套的类型声明很难读懂。它使用的是类型名而不是变量名,eg:
typedef int *int_pointer;
int_pointer ip;
  • Linux 32、Windows和Sun的机器使用的是4字节地址,而Linux 64使用的是8字节地址。

进行书上练习2.6

熟悉十六进制与二进制之间的转换,并且了解什么叫做匹配位数。

  • 表示字符串和代码: C语言中字符串被编码为一个null字符结尾的字符数组。每个字符串都由某个标准编码来表示,最常见的是ASCII字符码。
  • 通过执行命令 man ascii ,你可以得到一张ASCII字符码的表。
  • 布尔代数 常用运算符号:与 :& 或 :| 非:~ 异或:^

进行书上练习2.8

  • 位级运算:位向量按位进行逻辑运算,结果仍是位向量。位级运算的一个常见用法就是实现掩码运算,这里掩码是一个位模式,表示从一个字中选出的为的集合。
  • C语言中的移位运算: C语言标准并没有明确定义应该使用那种两类型的右移。对于无符号数据,右移必须是逻辑的。而对于有符号数据,算术的或者逻辑的右移都可以。

进行书上练习2.10、2.11

在虚拟机上进行代码编写,并回答问题。

  • c语言中的移位运算右移

右移分为逻辑右移和算术右移。算术左移和逻辑左移没有什么区别。逻辑右移: 在左端补k个0,多用于无符号数移位运算算术右移: 在左端补k个最高有效位的值,多用于有符号数移位运算。

  • 补码运算

补码的用法: 加法必须确定结果太大或者太小时,应该采取什么措施,两个数的w位补码之和与无符号数之和有完全相同的位级表示。大部分计算机使用同样的机器指令来执行无符号或者有符号加法。

  • 根据阶码的值,被编码的值可分为三种:

一:规格化的值(当阶码字段不全为0或全为1时),阶码E = e-Bias(e为无符号整数);偏置值 Bias = 2^(k-1)-1;尾数 M = 1+f(小数字段frac的解释为描述小数值f,二进制小数点在小数字段最高有效位的左边)。

二:非规格化的值 (当阶码字段全为0时),E = 1-Bias;Bias = 2^(k-1)-1;M = f

三:特殊值 (当阶码字段全为1时),当小数域全为0时, 当s=1时,为-∞;当s=0时,为+∞;当小数域不全为0时,为NaN

  • 向偶数舍入,也称为向最接近的值舍入,是默认的方式,方法是:将数字向上或者向下舍入,使得结果的最低有效数字是偶数。

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

问题: 教材中的练习2.34 对补码x[110]与y[110]的乘积结果[000100]的计算问题。

解决过程: 首先要了解补码乘法,然后进行了如下运算:

技术分享

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

问题: 运行书上35页的两个代码,刚开始运行不了,然后自己加了一个主函数,还是有错误,错误信息如下:

技术分享

解决过程: 在加了一个主函数后,定义了MAX常量,后成功运行:

技术分享

代码托管截图

技术分享

技术分享

码云链接

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

在十一的假期中克服了自己的玩性,耐下心来学习了教材的第二章内容,认真的做了书上的练习题,也尝试编写了书上的几个代码,收获匪浅,终于懂得还是应该脚踏实地,劳逸结合,学习应立足于每一天,每天都不能松懈,只有这样,才能真正的称得上是一个有意义的假期。

学习进度条

 代码行数(新增/积累)博客量(新增/积累学习时间(新增/累积)
目标 5000行 30篇 400小时
第一周 5/5 1/1 8/8
第二周 1200/120 1/1 12/12
第四周 100/100 1/1 15/15

以上是关于2017-2018-1 20155208 《信息安全系统设计基础》第四周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

2017-2018-1 20155208 20155212 实验三 实时系统

20155208徐子涵 Exp 6 信息搜集与漏洞扫描

2017-2018-1 20155307 信息安全系统设计基础》实验五 通信协议设计