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

信息的表示与处理

①信息存储

无符号数:基于传统二进制表示法,表示大于或者等于零的数字。

有符号数:以二进制补码表示。

浮点数:表示实数的科学计数法的以二为基数

②进制转换

二进制、八进制、十进制、十六进制(转换:以二进制作为中间变量)。

gcc -m32

可以在64位机上生成32位的代码。

④字节顺序

打端法:小对小,大对大。

小端法:与大端法相反。(那这么说8086操作系统是小端法咯!)

⑤逻辑运算

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

大量计算机的安全漏洞都是由于计算机算术运算的微妙细节引发的

⑦掩码

位运算的重要应用,表示从一个字中选择一个位的集合。对特定位可以置一,可以清零

通过掩码,可以屏蔽一些信号,掩码表示是设置为有效信号的集合。

⑧整型数据类型

char:字符型数据,占用一个字节
unsigned char:无符号字符型数据,占用一个字节
short:短整形数据,占用两个字节
unsigned short:无符号短整型数据,占用两个字节
int:整形数据,占用两个字节
unsigned int:无符号整型数据,占用两个字节
long:长整型数据,占用四个字节
unsigned long:无符号长整型数据,占用四个字节

C语言中有符号数转换为无符号数时,不改变位表示,也就是说,不同的数据类型C语言读取的方式不一样。

如何让负数变成整数:逐位取反再加一,先非运算,再加一。

扩展为32位时用1扩展负数,用零扩展整数。

溢出就是内存中存储运算结果的空间不够导致,所以为了避免溢出,应该事先估计运算结果的大小,找到合适的存储空间。

⑨浮点数

IEEE:V = (-1)s * M * 2E

s-符号 0为正,1为负

M-小数

E-阶数

向偶舍入(默认):将数字向上或向下舍入,是的结果的最低有效数字为偶数。能用于二进制小数。
向零舍入:把整数向下舍入,负数向上舍入。
向下舍入:正数和负数都向下舍入。
向上舍入:正数和负数都向上舍入。

float中:s、exp和frac字段分别为1位、k = 8 位和n = 23位,得到一个32位的表示

double中:s、exp和frac字段分别为1位、k = 11 位和n = 52位,得到一个64位的表

整数与小单精度数的转换:符号位+阶数加127的二进制数+去掉开头1位的数+十个0。

问题解决:

上周敲了课本P28的代码,但是怎么都没运行出来,然后这周看了别的同学的博客就明白了,原来是课本上的代码只是给了函数,这些函数需要用主函数去调用。

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积)重要成长
目标 5000行 30篇 400小时  
第零周 0/0 1/1 15/15  
第一周 0/0 1/2 25/40  
第二周 62/62 1/3 25/65  
第三周 176/238 1/4 20/85
原文地址:https://www.cnblogs.com/20145235litao/p/5927829.html