2017-2018-1 20155217 《信息安全系统设计基础》第三周学习总结
2017-09-30 14:11
405 查看
2017-2018-1 20155217 《信息安全系统设计基础》第三周学习总结
教材学习内容总结
无符号编码基于传统的二进制表示法,表示大于或等于0的数字。补码编码是表示有符号整数最常见的方式,有符号整数是可以为正货为负的数字。浮点数编码是表示实数的科学计数法的以2为基数的版本。大多数64位机器可以运行32位机器编译的程序,这是一种向后兼容。例如,当程序prog.c用如下伪指令编译
gcc -m32 prog.c该程序就可以在32位或64位机器上正确运行;而该程序用
gcc -m64 prog.c运行后,只能在64位机器上运行。
小端法:高对高,低对对;大端法:从视觉上,是这次阅读的顺序,与小端法相反。使字节顺序变得可见的三种方式:不同类型的机器之间通过网络传送二进制数据时,网络应用程序的代码编写必须遵守已建立的关于字节顺序的规则;使用反汇编器,处理整数数据的字节序列的存储字节顺序问题;当编写规避正常的类型系统的程序时。
逻辑运算容易与位运算相混淆,但他们的功能是完全不同的。逻辑运算认为所有非零的参数都表示true,而参数0表示false。他们返回0或1,分别表示结果为true或false。而按位运算只有在特殊情况下,也就是参数被限制为0或1时,才和与其对应的逻辑运算有相同的的行为。
位运算: |:或 &:与 ~:取反 ^:异或
逻辑运算: 逻辑运算符:||(或)、&&(与)、!(非)
要用C99中的“long long”类型,编译时要用
gcc -std=c99
有符号数和无符号数之间的转换:
处理同样字长的有符号数和无符号数之间相互转换的一般规则: 数值可能会改变,但是位模式不变。 c语言允许无符号数和有符号数之间的转换。转换的原则是底层的位表示不变。 当从无符号数转换为有符号数是,效果是应用函数U2T,从有符号数转化为无符号数时,应用函数T2U,其中w表示数据类型的位数。 负数和正数相等的情况:u=2147483648 =-2147483648 (当输出分别为无符号形式和有符号形式时)
在负数x后加上U,可以使其转换为(2^w+x),就可以让负数等于正数
对于范围-2^(w-1)≤x<-2^(w-1)内的x,补码的非运算如下:
1.x=-2^(w-1):补码的非为-2^(w-1) 2.x>-2^(w-1):补码的非为-x
求位级补码非的方法:
对每一位求补,再对结果加1 建立在将位向量分为两部分的基础之上的
无符号乘法:
两个数x、y相乘且x、y的位数为w,则结果的位数为2w。
补码乘法:
同无符号乘法。 若为截断后的结果,则取结果的后w位作为计算结果。 注意:无符号运算和补码运算在“+”、“-”、“*”在位级上有相同的结果。
IEEE浮点数表示:
表示形式为:V = (-1)^s * M * 2^E
符号:s决定这个数是负数(s = 1)还是正数(s = 0),而对于数值0的符号位解释作为特殊情况处理。
尾数:M是一个二进制小数,它的范围是1 ~ 2-ε,或者是0 ~ 1-ε。
阶码:E的作用是对浮点数据加权,这个权重是2的E次幂(可能是负数)。
根据阶码的值,可分为一下三种情况:
情况一:规格化的值 (当阶码字段不全为0或全为1时) E = e-Bias Bias = 2^(k-1)-1 M = 1+f 情况二:非规格化的值 (当阶码字段全为0时) E = 1-Bias Bias = 2^(k-1)-1 M = f 情况三:特殊值 (当阶码字段全为1时) 当小数域全为0时, 当s=1时,为-∞;当s=0时,为+∞。 当小数域不全为0时,为NaN。
浮点数的舍入
有四种情况分别是:
向偶数舍入(默认) 向零舍入 向下舍入 向上舍入
浮点运算
浮点加法:不满足结合性、满足单调性 浮点乘法:不满足结合性、满足单调性,在加法上不满足分配性
教材学习中的问题和解决过程
问题1:length=0时会出现存储器错误,这是因为参数length是无符号的,计算0-1将进行无符号运算,等价于模数加法,结果得到UMax。因为任何数都是小于等于UMax的,所以<=比较总是为真,代码将访问数组a的非法元素。
问题1解决方案:
将length声明为int类型
将for循环测试条件改为i>length
代码调试中的问题和解决过程
无代码托管
上周考试错题总结
无结对及互评
点评模板:
博客中值得学习的或问题:xxx
xxx
...
代码中值得学习的或问题:
xxx
xxx
...
其他
本周结对学习情况
- [20155236](http://www.cnblogs.com/fcgfcgfcg/) - 结对照片 - 结对学习内容 - 浮点加法: 浮点加法是可交换的。 浮点加法不具有结合性,这是缺少的最重要的群属性。 浮点加法满足了单调性属性:如果a≥b,那么对于任何a、b以及x的值,除了NaN,都有x + a ≥ x + b。无符号或补码加法不具有这个实数(和整数)加法的属性。 - 浮点乘法: 浮点乘法是可交换的 浮点乘法不具有结合性 浮点乘法的单位元为1.0 浮点乘法在加法上不具备分配性 - ......
其他(感悟、思考等,可选)
“精读”背后要多付出的精力、时间,与泛读甚至浏览完全不在同一个层次上。第二章一共60页,坚持每一页的每一句话都看到心里去,说不乏味不疲倦是不可能的。尤其是在假期期间,想要静下心来太难了,但是细读的收获又是显著而充实的。学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 85/85 | 1/1 | 6/6 | |
第二周 | 85/85 | 1/1 | 6/6 | |
第三周 | 91/176 | 3/4 | 12/18 |
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
参考:软件工程软件的估计为什么这么难,软件工程 估计方法
计划学习时间:16小时
实际学习时间:12小时
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)
参考资料
《深入理解计算机系统V3》学习指导...
相关文章推荐
- 20155325 2017-2018-1 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第十一周学习总结
- 2017-2018-1 20155225 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155204 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第九周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第七周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第十四周学习总结
- 20155208 2017-2018-1 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155308 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155313 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155229 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155235 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155303 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155216 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155317 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155310 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155217 《信息安全系统设计基础》第十三周学习总结
- # 2017-2018-1 20155232 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155304 《信息安全系统设计基础》第三周学习总结
- 2017-2018-1 20155205 《信息安全系统设计基础》第三周学习总结