2017-2018-1 20155319 《信息安全系统设计基础》第3周学习总结
教材学习内容总结
- 进制转换
1.X=2^n n=i+4j此时X转化为0x 2^i+j个0。
2.x=q*16+r 短除法从下往上读余数。
3.用相应的16的幂乘以每个16进制数字。
- 字数据大小
linux> gcc -m32 prog.c``linux> gcc -m64 prog.c
在不同位计算机上正确运行程序。
- 寻址和字节顺序
排列表示一个对象的字节有两个通用的规则。考虑一个w位的整数,其位表示为[Xw-1,Xw-2...X1,X0],其中Xw-1是最高有效位,而X0是最低有效位。假设w是8的倍数,这些位就能被分组成为字节,其中最高有效字节包含位[Xw-1,Xw-2...Xw-8],而最低有效字节包含位[X7, X6...X0],其他字节包含中间的位。某些机器选择在内存中按照从最低有效字节到最高有效字节的顺序存储对象,而另一些机器则按照从最高有效字节到最低有效字节的顺序存储。前一种规则—最低有效字节在最前面的方式,称为小端法(。后一种规则—最高有效字节在最前面的方式,称为大端法。
- 布尔代数
- 浮点数
浮点数表示通过将数字编码为x*2^Y的形式来近似表达实数。最常见的复电表示方法是由IEE标准754定义的。他提供了几种不同的精度最常见的是单精度(32位)和双精度(64位)。
教材学习中的问题和解决过程
- 问题1:对于无符号数的加法乘法等不太理解。
- (1)无符号整形加法:对于32位表示的任意无符号整形x(xw-1…x0),有x∈[0, 2w-1],则s=a+b∈[0, 2w+1-2],所以
1、当s∈[0, 2w-1]时,未发生溢出,s=a+b
2、当s∈[2w,2w+1-2]时,发生了正溢出,由于无符号整形只能由32位表示,所以当溢出发生时需要截断到32位,舍弃第w位,此时s=(a+b)%2w,即s=a+b-2w
2)无符号整形减法:对于32位表示的任意无符号整形x(xw-1…x0),有x∈[0, 2w-1],假设x的加法逆元是-x,则-x可以表示为
(I)-x=0,x=0
(II)-x=2w-x
则对于z=x-y,可以认为z=-y+x,则无符号整型的减法运算可以转换为无符号整型的加法运算。
(3)无符号整型的乘法运算:
对于32位表示的任意无符号整形x和y,设z=x*y,则z∈[0,(2w-1)2],要完整的表示z需要2w位,此时会发生溢出,操作系统会将z截断至w位,因此有
z =(x*y)mod2w。
(4)无符号整型的除法运算:
对于除法运算,需要注意的是被除数不能为0(这种情况不会视为溢出,而是作为异常中断来处理),且除法的结果总是舍入到0。
代码调试中的问题和解决过程
- 问题1:在写myod的时候出现了一些编译不通过的情况在同学的帮助下实现了。
(statistics.sh脚本的运行结果截图)
上周考试错题总结
无
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |
计划学习时间:10小时
实际学习时间:7.5小时