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

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

教材学习内容总结

· 三种数字:无符号数、有符号数(2进制补码)、浮点数,信息安全系同学从逆向角度考虑为什么会产生漏洞
答:①会发生溢出②浮点数的表示是近似值。

· 进制转换,注意拿二进制作中间结果就好转了
习题2.4
注意要将64化为十六进制再与其做加法。

· gcc -m32 可以在64位机上(比如实验楼的环境)生成32位的代码

·字节顺序是网络编程的基础,记住小端是“高对高、低对低”,大端与之相反就可以了。
小端法——最低有效字节在最前面
大端法——最高有效字节在最前面

· 能区分逻辑运算(结果是1或0)和位运算(结果是位向量),所有逻辑运算都可以用与、或、非表达(最大式、最小式),而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算。

· 掩码是位运算的重要应用,对特定位可以置一,可以清零
习题2.11
当一组数组为奇数长度时,两个指针也就相同因而x^x==0,所以就会把中间元素设成零。

· 要用C99中的“long long”类型,编译是要用 gcc -std=c99
·int型可以用2个字节的数字来实现
·long的大小可以用4个细节的数字来实现
·long long要用八个字节来表示

· 补码的利用寄存器的长度是固定的特性简化数学运算。想想钟表,12-1 等价于 12 + 11,利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。
关于补码的两点注意:
·补码的范围是不对称的
·最大的无符号数值刚好比补码的最大值的两倍大一点

· 注意C语言中有符号数和无符号数的转换规则,位向量不变。想想第一章说的 信息就是“位+上下文”

· 0扩展和符号扩展
·零扩展:将一个无符号数转换为一个更大的数据类型,在表示的开头添加0
·符号扩展:讲一个补码数字转换为一个更大的数据类型可以执行符号扩展

· 浮点数有科学计数法的基础就不难理解,IEEE标准754

· 浮点数运算的不精确性与舍入

·IEEE浮点标准,float/double类型
·IEE浮点标准: 用V=(-1)^s X 2^E X M 来表示一个数
·符号:s决定这个数是正还是负。0的符号位特殊情况处理。
·阶码:E对浮点数加权,权重是2的E次幂(可能 为负数)
·尾数:M是一个二进制小数,范围为12-ε或者01-ε(ε=1/2的n次幂)
·编码规则:单独符号位s编码符号s,占1位 k位的阶码字段exp编码阶码E n位小数字段frac编码尾数M(同时需要依赖阶码字段的值是否为0)
·单精度(float),k=8位,n=23位,一共32位;双精度(double)

·P28页 编写main函数测试:

p35 练习2.11
·输入奇数个

·输入偶数个

·程序代码

·p44 代码放到一个main函数中

·p47-49代码放到一个main函数中

教材学习中的问题

在编辑最后一个代码的时候出现了问题

发现是因为头文件没有加对,之后改正了,成功

本周代码托管截图

代码托管链接:

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
第二周 300/500 2/4 18/38
第三周 500/1000 3/7 22/60

参考资料

  • 《深入理解计算机系统V2》学习指导
  • ...
原文地址:https://www.cnblogs.com/20145238jym/p/5928358.html