20145229吴姗珊 《信息安全系统设计基础》第3周学习(知识重点总结)

20145229吴姗珊 《信息安全系统设计基础》第3周知识总结

知识总结

-三种重要的数字表示
无符号[表示大于或等于零的数字]
补码[二进制补码][表示有符号整数]
浮点数[表示实数的科学计数法的以二为基数的版本]

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

-寻址和字节顺序
最低有效字节在最前面的方式,小端法
最高有效字节在最前面的方式,大端法

-所有逻辑运算都可以用与、或、非表达(最大式、最小式),而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算

-掩码是位运算的重要应用,对特定位可以置一,可以清零。
掩码是一个位模式,表示从一个字中选出的位的集合。
用位向量给集合编码,通过指定掩码来有选择的屏蔽或者不屏蔽一些信号,比如某一位位置上为1时,表明信号i是有效的;0表示该信号被屏蔽。

-整型数据类型
要用C99中的“long long”类型,编译是要用 gcc -std=c99。long long至少需要8个字节表示

-补码的利用寄存器的长度是固定的特性简化数学运算。想想钟表,12-1 等价于 12 + 11,利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。
-怎么样让负数等于正数?
当执行一个运算时,如果它的一个运算数是有符号的而另一个是无符号的,所以c语言将有符号参数强制类型转换为无符号数,并假设这两个数都是非负的,这种方法对标准的算术运算来说没有差别,但是对于关系运算符来说,它会产生不同的结果。

-扩展和符号扩展
从一个较小的数据类型转换到一个较大的类型。无符号数的转换是简单的在表示的开头添0,这种运算称为零扩展,补码数字的转换则是在表示中添加最高有效位值的副本,称为符号扩展。扩展前要先将要扩展的数值进行二进制表示才能找到最高有效位Xw-1。虽进行扩展,但位向量不变。
零扩展:简单地在表示的开头添加0;
符号扩展:在表示中添加最高有效位的值的副本。

-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),k=11位,n=52位,一共64位

p33:了解掩码:掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位。我们可以通过指定一个位向量掩码,有选择地使能或是不能屏蔽一些信号,当某一位置掩码为1,表明信号i有效,而0表明该信号被屏蔽,那么掩码表示的也就是设置为有效信号的集合。

p39: 补码是利用寄存器的长度是固定的特性简化数学运算。想想钟表,12-1 等价于 12 + 11,利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。
补码的编码方式是有符号的,即取反加1,书上的解释更加清楚,用向左指的灰色条(负轴方向)表示符号位具有负权重,即该位向量的值就是就可以用向左指的和向右指的条相加决定的。

-补码运算规则:

[X+Y]补 = [X]补 + [Y]补;
[X-Y]补 = [X]补 - [Y]补 = [X]补 + [-Y]补

心得体会

由于要求在周四之前发一篇博客,时间不是很够,所以打算先学习理论的知识点内容,以上即为第三周学习的理论知识,下一篇将会补上学习的实践内容,把脚步放慢一点,让自己学得更扎实一点,但是在这门课的学习中,也应该加紧步伐每天多学习一些内容让自己赶上同学们的步伐,学习的知识固然是难以理解的,但是在一点点的学习中,相信一切都会迎刃而解的,只要想学习,一切都不算晚。

参考资料

  • [《深入理解计算机系统V2》学习指导]
  • ...

posted on 2016-10-19 21:31  sssssqyk  阅读(103)  评论(2编辑  收藏  举报

导航