20145334赵文豪 《信息安全系统设计基础》第3周学习总结

本周书中有60页的内容,确实不少,知识点也比较碎,需要认真理解和掌握
部分相关知识点:

三种数字:无符号数、有符号数(2进制补码)、浮点数
无符号:基于传统二进制表示法,表示大于或者等于零的数字。
补码:表示有符号整数的最常见方式。
浮点数:表示实数的科学计数法的以二为基数的版本。
进制转换:二进制、八进制、十进制、十六进制(转换:以二进制作为中间变量)。
十六进制:以0x或0X开头表示,字符A-F可大写、可小写、也可混用。
gcc -m32:可以在64位机上(比如实验楼的环境)生成32位的代码。
当没有-m32或-m64参数时,一般情况下会生成跟操作系统位数一致的代码

字节顺序:字节顺序是网络编程的基础,是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。
小端法:指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处。
大端法:是高字节数据存放在低地址处,低字节数据存放在高地址处。

逻辑运算(结果是1或0)

所有逻辑运算都可以用与、或、非表达(最大式、最小式),而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算。
逻辑与(&&):遇0为0;
逻辑或(||):遇1为1;
逻辑非 (!):遇0为1,遇1为0;

位运算(结果是位向量)
按位与(&):二进制每一位遇0为0;
按位或(|):二进制每一位遇1为1;
按位异或():00=0,01=1,10=1,1^1=0;
按位取反(~):二进制每一位取反。
掩码:位运算的重要应用,表示从一个字中选择一个位的集合。对特定位可以置一,可以清零。

整数表示

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

布尔代数
二进制值是计算机编码、存储、操作信息的核心(0、1),最简单的布尔代数是在二元集合{0,1}上的定义。
一个布尔代数,是指一个有序的四元组〈B,∨,∧,〉,其中B是一个非空的集合,∨与∧是定义在B上的两个二元运算,是定义在B上的一个一元运算,并且它们满足一定的条件。
布尔值有两个,真(用1表示)和假(用0表示)。
布尔值的基本运算是基本逻辑运算,如:逻辑与,逻辑或,逻辑非,异或,同或等等。有自己的一套概念如最大项、最小项、卡诺图、反演律、吸收律之类。

C语言中的单精度浮点格式float 和双精度浮点格式double。
在float中,s、exp和frac字段分别为1位、k = 8 位和n = 23位,得到一个32位的表示;
在double中,s、exp和frac字段分别为1位、k = 11 位和n = 52位,得到一个64位的表示。

p28页代码调试

我敲完代码以后,发现出了点小问题,书中的代码没有main函数,用gcc调试,然后解决了问题

P35的gdb跟踪

书中p44页代码调试以及运行

p78页代码

调试的过程

老师上次说不要写太多内容的总结,这周我在实验楼里面敲了部分代码以及调试,部分代码的截图在上面,老师我的虚拟机今天进去就是花屏,爆炸了。我在linux环境下的git还没会用,我会马上解决的!

原文地址:https://www.cnblogs.com/bestizwh/p/5927507.html