2017-2018-1 20155301 《信息安全系统设计基础》第3周学习总结
教材学习内容总结
- 在C语言中0x或者0X开头的数字常量被认为是十六进制的值,可以是大小写混合的。
- 计算机的字长,指明指针数据的标称大小,字长决定的系统参数就是虚拟地址空间的最大大小。近些年计算机从32位到64位的转移。
- 该命令编译程序prog.c可以运行在32位或者64位上
gcc -m32 prog.c
该命令编译程序prog.c可以运行在64位上
gcc -m64 prog.c
-
寻址方式有两种,大端法和小段法,大端法是最高有效字节在最前面,小端法是最低有效字节在最前面。
例:0x00003039,大端法:00003039 小端法:39300000
-
布尔代数:有运算符 ~ & | ^分别对应逻辑运算的NOT AND OR 异或。
有分配律,a&(b|c)=(a&b)|(a&c),a|(b&c)=(a|b)&(a|c)
-
逻辑运算:
逻辑运算的计算方法:所有非零参数都代表TRUE,0参数代表FALSE
逻辑运算的结果:1-代表TRUE,或者,0-代表FALSE
-
移位右移,分为算数移位和逻辑移位,算数右移是在左端补k个最高有效位的值,逻辑右移是在左端补0。对于有符号数,基本上所有机器都会选择算数右移,对于无符号数右移必须输逻辑的。在Java中>>表示算数右移,>>>表示逻辑右移。
-
c语言中的有符号数与无符号数的转换原则是底层的位保持不变
-
补码范围是不对称的,这是因为以1开头的一半的位模式表示负数,而以0开头的表示非负数,所以造成了不对称性。
-
截断数字:减少表示一个数字的位数,这么做可能会改变它的值。
例如:将一个w位的数截断为k位数字时,就会丢弃高w-k位。
对于无符号数x来说,截断它到k位的结果就相当于计算 xmod (2^k)
对于有符号数来说,先按照无符号数截断,然后再转化为有符号数。 -
C语言中有符号数与无符号数一起运算,有符号数会强制转化为无符号数,对于“和”这种运算来说,会导致非直观的结果,例如:-1<0U,第二个是无符号数,所以第一个就会转化为无符号数,即4294967295U<0U
-
扩展数字的位标识,无符号数扩展为一个更大的数据类型,在开头添加0,称为零扩展,将补码转化为一个更大的数据类型,可以执行一个符号扩展,在表示中添加最高有效位的值。
-
无符号数加法,参数x和y定义为,x>=0,y<2w,对于x+y的位级表示,简单丢弃任何权重大于2w-1的位就可以计算出和模2w。
-
二进制小数
小数的二进制表示法只能表示那些能够被写成X (2^y)的数,其他的值只能近似的表示。权重:
以小数点为界,
左边第i位,权重为2的i次幂
右边第i位,权重为2的-i次幂
教材学习中的问题和解决过程
问题1:不明白教材里面的u是什么意思。
查资料知道:数字后面带个U是表示无符号类型的数据。U是unsigned的首字母
代码调试中的问题和解决过程
当参数length等于0的时候,出现了错误,但实际上应该是返回0.0
代码托管
(statistics.sh脚本的运行结果截图)
上周考试错题总结
- 错题1及原因,理解情况
- 错题2及原因,理解情况
- ...
结对及互评
点评模板:
- 博客中值得学习的或问题:
- xxx
- xxx
- ...
- 代码中值得学习的或问题:
- xxx
- xxx
- ...
- 其他
本周结对学习情况
- [20155317](http://www.cnblogs.com/wxwddp/p/7671075.html)
- 结对照片
- 结对学习内容
- XXXX
- XXXX
- ...
其他(感悟、思考等,可选)
xxx
xxx
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 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 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
-
计划学习时间:XX小时
-
实际学习时间:XX小时
-
改进情况:
(有空多看看现代软件工程 课件
软件工程师能力自我评价表)