zoukankan      html  css  js  c++  java
  • 信息安全系统设计基础第三周学习总结

    学习过程:

    第二章信息的表示和处理

    一、数字表示

        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位的表示。

  • 相关阅读:
    你要结婚了丶
    20150806这是个悲伤的日子。
    今天是我的生日。
    这是从word发的第一篇博客。
    【关于JavaScript】自动计算的实例
    【关于JavaScript】常见表单用户名、密码不能为空
    【关于php】Appserv中关于DW配置站点问题
    【关于php】Appserv的安装注意事项
    【无题】写在5月18日
    HTML中如何添加日历插件(JQUERY)
  • 原文地址:https://www.cnblogs.com/20135235my/p/4854374.html
Copyright © 2011-2022 走看看