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

  • 相关阅读:
    pat 甲级 1065. A+B and C (64bit) (20)
    pat 甲级 1064. Complete Binary Search Tree (30)
    pat 甲级 1010. Radix (25)
    pat 甲级 1009. Product of Polynomials (25)
    pat 甲级 1056. Mice and Rice (25)
    pat 甲级 1078. Hashing (25)
    pat 甲级 1080. Graduate Admission (30)
    pat 甲级 团体天梯 L3-004. 肿瘤诊断
    pat 甲级 1099. Build A Binary Search Tree (30)
    Codeforce 672B. Different is Good
  • 原文地址:https://www.cnblogs.com/20135235my/p/4854374.html
Copyright © 2011-2022 走看看