20145331 《信息安全系统设计基础》第3周学习总结

20145331 《信息安全系统设计基础》第3周学习总结

教材学习内容总结

2.1

1、三种重要的数字表示:无符号、补码、浮点数;"长"整数要使用机器的全字长;64位整数对于32位机器来说要把这种数据类型的操作编译成执行一系列32位操作的代码。

2、字节顺序:多字节对象都被存储为连续的字节序列,对象的地址为字节中最小的地址。

3、小端法:低有效字节放在最前面。 (低对低,高对高) 大端法:最高有效字节在最前面。

4、布尔代数、位向量:位向量就是有固定长度w、由0和1组成的串。应用:位向量掩码。

5、位级运算:与、或、非、异或。

6、逻辑运算:所有逻辑运算都可以用与、或、非表达(最大式、最小式),而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算。

2.2

1、无符号数编码范围:0~2^w-1(UMax) w为长度。

2、补码编码范围:-2^(w-1)~2^(w-1)-1 (TMin~TMax)。

3、有符号数无符号数转换:数值可能会变,但位模式不变。

4、创建无符号常量,加后缀字符U、u。

5、一个运算包含有符号数和无符号数,会把有符号数强制转换为无符号数,并假设这两个数非负。

6、扩展

a、0扩展:对象为无符号数,前面补0。
b、符号扩展:对象为补码,原补码最高位是几就在前面补几。

2.3

1、溢出:超过字长限制就会发生溢出,但溢出是不会报错的。

2、补码加法:包含四种模式:

a、正溢出:和减少2^w。
b、负溢出:和增加2^w。
c、d:正常情况直接相加。

2.4

1、增加二进制表示的长度可以提高精度。

2、IEEE浮点表示和三个参数:用V = (-1)s 2E的形式来表示一个数。

符号:s决定这个数是负数还是正数。
尾数:M是一个二进制小数,它的范围是1 ~ 2-ε,或者是0 ~ 1-ε。
阶码:E的作用是对浮点数据加权,这个权重是2的E次幂(可能是负数)。

3、三种情况:

1、规格化的值:E=e-bias bias=2^(k-1)-1 M=1+f 隐含的以1开头的表示(第一位是1就不用显示,获得一个额外精度位)
2、非规格化的值:E=1-bisa M=f
3、特殊值:小数域全为0时,s=0是正无穷,s=1是负无穷;小数域不为0,“NaN”

4、舍入:(共四种)默认方式:向偶数舍入:找一个最接近的匹配值、将数字向上/下舍入,使结果最低有效数字是偶数。

学习中的问题和解决过程

1、p74将整数转换为浮点数时就是算不对:

发现错误在构造小数段这里:把整数改为二进制的科学计数法表示,舍弃1之后,我想当然地用符号扩展的知识在前面开始补0,最后发现要在末尾补位,不过为啥要在后面补。。。

2、p58表格情况2、3不知道有什么区别,只是正负不同么?

3、忘记怎么在开源中国里创建新的项目了,这几天一定搞明白创建好重新上传。

本周代码托管截图

https://git.oschina.net/20145331/java-besti-is-2015-2016-2-20145331.git  

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

国庆爱学习,越学越开心!

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 30篇 400小时  
第一周 20/20 1/2 13/20  
第二周 50/70 1/3 15/38  
第三周 100/170 1/4 20/60

参考资料

《深入理解计算机系统V2》学习指导

原文地址:https://www.cnblogs.com/bosswsc/p/5928276.html