2017-2018-1 20155211 《信息安全系统设计基础》第3周学习总结
2017-2018-1 20155211 《信息安全系统设计基础》第3周学习总结
教材学习内容总结
- 无符号编码基于传统二进制表示法,表示大于等于零的数字。
- 补码编码是表示有符号整数
- 浮点数编码是表示实数的科学计数法的以2为基数的版本
- 在C语言中,以0x或0X开头被认为是十六进制值得表示方法。
- 字长决定的最重要的系统参数就是虚拟地址空间的最大大小。(每台计算机都有一个字长,大小为指明指针数据的标。)
- 排列表示一个对象的字节有两个通用的规则,即小端法和大端法。小端法即我们之前在汇编中学习过的‘低对低,高对高’,其每个字节的内部是不变化顺序的,同时也是我们常用到的。而大端法则为最高有效字节在前面。
- c语言中字符串被编码成为一个以null(值为0)字符结尾的字符数组。最常使用的为ASCII字符码,其好处在于在使用ASCII字符码的任何系统上都能得到相同的结果,与字节顺序和字大小规则无关,因此文本数据比二进制数据具有更强的平台独立性。
- 布尔代数:二进制1和0分别表示逻辑值T和F,运算符-,&,|,和^分别表示NOT,AND,OR,EXCLUSIVE-OR。我们可以将布尔运算扩张到位向量的运算。
- 位向量即固定长度w,由1和0组成的串,可定义成参数的每个对应元素之间的运算。其一个有用的应用就是有限集合。
- c语言一个很有用的特性就是它支持按位布尔运算。
- c语言中逻辑运算符||,&&,!分别对应命题逻辑中的OR,AND,NOT。与位级运算功能完全不同。逻辑运算认为所有非零参数表示TRUE,0表示FALSE,它们返回1或者0分别对应结果TRUE和FALSE。
- 补码:利用补码表示有符号数,,所有的运算都可用加法器实现。在补码中,将字的最高有效位解释为负权
- 补码的范围是不对称的
- 补码的最高位是符号位,用带向左箭头的条表示。无符号数的最高有效位有正权重,用带向右箭头的条表示
- 无符号数与有符号数间的转换原则是底层的位表示不变
- 零扩展/符号扩展:将一个无符号数/补码数字转换为一个更大的数据类型
- 对于无符号和补码乘法来说,乘法运算的位级表示都是一样的
教材学习中的问题和解决过程
- 问题1:浮点数的不精确运算与舍入?
- 问题1解决方案:浮点数运算的舍入问题
代码调试中的问题和解决过程
- 问题1:p31页代码无法运行
- 问题1解决方案:需补充一个main函数
- 后续页数代码也出现了类似的问题,解决方案同上
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
考试错题的链接打不开
本周结对学习情况
- 20155235
- 结对学习内容
- 逻辑运算与位级运算的不同
- 结对学习内容
其他(感悟、思考等,可选)
本周因为和十一假期相连,故而拖了一段时间。本周的学习内容与上学期多门课的学习相连,在看书的时候同时复习了一下上学期的内容。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 94/100 | 1/1 | 12/15 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:15小时
-
实际学习时间:12小时
-
改进情况:因为上学期学习java时多用windows下的idea,故在虚拟机中调试耗费了许久,然而统计代码的stastics脚本仍然有些问题,在给予权限后虽可统计代码却仍然会有权限不足的提示。
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)