2017-2018-1 20155218 《信息安全系统设计基础》第3周学习总结
教材学习内容总结
- 在内存中排列字节的方式:小端法和大端法
- B2U:Binary to Unsigned
- 最高有效位Xw-1也成为符号位,他的权重为-2^(w-1),是无符号表示中全中的负数,符号位被设置为1时,表示值为负,当设置为0时,值为非负。
- w位补码所能表示的值的范围为TMin=-2(w-1)到TMax2(w-1)-1;
- 强制类型转换的结果保持位值不变,只是改变了解释这些位的方式。
- 表达式行x<y和表达式x-y<0会产生不同的结果。
- 在二进制小数中,增加二进制表示的长度可以提高表示的精度。
- IEEE浮点表示。;
教材学习中的问题和解决过程
- 问题1:计算机原理中的位向量
- 问题1解决方案:位向量就是有固定长度w,由0和1组成的串。给出一个位向量并集的例子:a=[01101001]表示{0,3,5,6},b=[01010101]表示{0,2,4,6}。最终二者并集=[01000001]={0,6}.
- 问题2:
short int v = -12345;
unsigned short uv = (unsigned short) v;
v=-12345;uv=53191
- 问题2解决方案:因为-12345的16位补码表示与53191的16位无符号数表示是一样的
[1100111111000111]
即强制类型转的结果保持位值不便,只是改变了解释这些位的方式。
- 问题3:IEEE的浮点表示:
- 解决方案:
具体的看书看了几遍还是无法理解,所以只能借助例子来理解,希望老师可以讲解一下
已知:整数3490593(16进制表示为0x354321)。求:其对应的浮点数3490593.0的二进制表示。
解法如下:
先求出整数3490593的二进制表示:
H: 3 5 4 3 2 1 (十六进制表示)
B: 0011 0101 0100 0011 0010 0001 (二进制表示)
│←───── 21────→│
即:
1.1010101000011001000012×221
可见,从左算起第一个1后有21位,我们将这21为作为浮点数的小数表示,单精度浮点数float由符号位1位,指数域位k=8位,小数域位(尾数)n=23位构成,因此对上面得到的21位小数位我们还需要补上2个0,得到浮点数的小数域表示为:
1 0101 0100 0011 0010 0001 00
float类型的偏置量Bias=2k-1-1=28-1-1=127,但还要补上刚才因为右移作为小数部分的21位,因此偏置量为127+21=148,就是IEEE浮点数表示标准:
V = (-1)s×M×2E
E = e-Bias
中的e,此前计算Bias=127,刚好验证了E=148-127=21。
将148转为二进制表示为10010100,加上符号位0,最后得到二进制浮点数表示1001010010101010000110010000100,其16进制表示为:
H: 4 A 5 5 0 C 8 4
B: 0100 1010 0101 0101 0000 1100 1000 0100
|←──── 21 ─────→ |
1|←─8 ─→||←───── 23 ─────→ |
这就是浮点数3490593.0(0x4A550C84)的二进制表示。
代码调试中的问题和解决过程
- 问题1:出现内存错误
- 问题1解决方案:这说明了从有符号数到无符号数的隐式强制转换,因为当length=0时,length-1为负数,结果得到了UMAX,使得比较总是为真,所以将length声明为int即可。
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [20155205](http://www.cnblogs.com/haoliberale/p/7613748.html)
- 结对学习内容
-第二章课本内容
-课下练习题
结对照片:
其他(感悟、思考等,可选)
这一次课本的学习我是先大体看了一遍课本,然后按照蓝墨云上第二章的题目来仔细的看了知识点,第一次做大约用了3个小时。我想如果我不去做题,好多知识都是模棱两可的过去,即使是这样我也还有好多是不会的。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第三周 | 132/296 | 2/22 | 8/18 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)