信息安全系统设计基础第三周学习总结

学习过程:

第二章信息的表示和处理

一、数字表示

    1、 无符号数:编码基于传统的二进制表示法表示大于或等于零的数字。

    2、 补码:编码是表示有符号整数的最常见方法,可以是正或者是负的数字。

    3、 浮点数:编码是表示实数的科学计数法的以二位基数的版本。 

二、信息存储

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

    2、使用C99特性时 gcc -std=c99 xxx.c 实验楼环境为64位,编译为32位机器码: gcc -m32 xxx.c

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

    3、字长:指明整数和指针数据的大小。

         字长决定最重要的系统参数就是虚拟地址空间的最大大小。

    4、字节顺序:字节顺序是网络编程的基础。

    5、小端法:某些机器选择在存储器中按最低有效字节到最高有效字节。

        大端法:某些机器选择在存储器中按最高有效字节到最低有效字节。

        小端是“高对高、低对低”,大端与之相反。

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

    7、布尔代数:二进制是计算机编码、存储、操作信息的核心。

                      逻辑运算——0或1

     8、表示字符串:文本数据比二进制数据具有更强的独立性

     9、掩码:通过指定一个位向量掩码,有选择的使能或不能屏蔽一些信号。(0表示被屏蔽)

          掩码是位运算的重要应用,对特定位可以置一,可以清零。 

三、整数表示

     1、整型数据类型:根据字节分配,不同的大小所能表示的值的范围不同。

          最高位有效位也称符号位。0为正,1为负。

          要用C99中的“long long”类型,编译是要用 gcc -std=c99

     2、扩展一个数字的位表示:在不同字长的整数之间转换又保持数值不变。

     3、符号扩展:将补码数字转换成更大类型的数据。规则在表中添加最高有效位的值的副本。

     4、无符号数与有符号数转换

          强制类型转换的结果保持位值不变,改变解释这些位的方式。

          处理同样字长的有、无符号数之间相互转换的规则:数值可能会变,但是位模式不变。(底层的位表示保持不变)

          无—>有:U2Tw函数

          有—>无:T2Uw函数(w表示数据类型的位数。)

     5、扩展一个数字的位表示:在不同字长的整数之间转换又保持数值不变。

          0扩展:简单的在表示的开头加0。

          符号扩展:将补码数字转换成更大类型的数据。规则在表中添加最高的效位的值的副本。

     6、截断数字:可能会改变数值——溢出的一种形式。

          对于无符号数字x,截断到k位,相当于计算:x mod 2(k)。(k次幂)

四、整数运算

      1、整数运算:整数运算实际是一种模运算。表示数字的有限字长限制了可能的取值范围,结果可能溢出。补码提供了技能表示正数也能表示负数的灵活方法,同时使用了与执行无符号算数相同的位级实现。

      2、补码:最常见的有符号数的计算机表示方式。

            最高有效位也叫符号位。

      3、正数的补码=原码

           负数的补码=原码各位取反后加1

      4、补码的利用寄存器的长度是固定的特性简化数学运算。利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。

      5、C语言中有符号数和无符号数的转换规则,位向量不变。 

五、浮点数

      1、二进制小数:小数点左边的数字的权是2的非负幂,右边的数字的权是2的负幂。

      2、IEEE浮点表示:标准 V=(-1)^sM2^E

           (符号:s决定这个数是负数(s = 1)还是正数(s = 0),而对于数值0的符号位解释作为特殊情况处理。

            尾数:M是一个二进制小数,它的范围是1 ~ 2-ε,或者是0 ~ 1-ε。

            阶码:E的作用是对浮点数据加权,这个权重是2的E次幂。)

      3、将浮点数的位表示划分为三个字段分别进行编码:

           一个单独的符号位直接编码符号。

            k位的阶码字段exp = ek-1…e1e0编码阶码。

            n位小数字段,但编码出来的值也依赖于阶码字段的值是否等于0。

       4、舍入:浮点运算只能近似的表示示数运算想要找到最接近x的值就是舍入,问题的关键在于在两个可能的值中间确定舍入方向。

            向偶数舍入:也叫向最接近的值舍入。是默认方法。将数字向上或向下舍入使的结果的最低有效数字是偶数。

       5、浮点运算:IEEE的优势可以独立于任何具体的硬件或软件实现。

            浮点加法不具有结合性但满足了单调性属性。

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

原文地址:https://www.cnblogs.com/20135235my/p/4854374.html