zoukankan      html  css  js  c++  java
  • 2017-2018-1 20155227 《信息安全系统设计基础》第三周学习总结

    2017-2018-1 20155227 《信息安全系统设计基础》第三周学习总结

    教材学习内容总结

    第二章 信息的表示和处理

    • 三种数字表示:无符号数、有符号数(2进制补码)、浮点数

    • 溢出:计算机的表示法是用有限数量的位来对一个数字编码,当结果太大以至不能表示时,会溢出

    • 整数运算:编码的数值范围较小,精确;浮点运算:数值范围较大,近似,不可结合

    2.1 信息存储

    • 1个字节为8位,大多数计算机将1个字节作为最小的可寻址的存储器单位。(单片机除外)
    • 字节顺序:字节顺序是网络编程的基础,是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端、大端两种字节顺序。
      • 小端法:低字节数据存放在内存低地址处,高字节数据存放在内存高地址处。
      • 大端法:高字节数据存放在低地址处,低字节数据存放在高地址处。
    • 机器级程序将存储器(一般指内存)视为一个非常大的字节数组,称为虚拟存储器。
    • 存储器的每个字节由一个唯一的数字标识,称为地址,所有可能地址的集合称为虚拟存储空间。
    布尔代数
    逻辑运算

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

    逻辑与(&&):遇0为0;
    逻辑或(||):遇1为1;
    逻辑非 (!):遇0为1,遇1为0;
    
    位运算
    按位与(&):二进制每一位遇0为0;
    按位或(|):二进制每一位遇1为1;
    按位异或(^):0^0=0,0^1=1,1^0=1,1^1=0;
    按位取反(~):二进制每一位取反。
    
    掩码运算
    掩码运算:掩码是位运算的重要应用,这里掩码是一个特定位模式,表示从一个字中选择一个位的集合。对特定位可以置一,可以清零。
    
    移位运算

    逻辑右移:在左端补k个0,多用于无符号数移位运算

    算术右移:在左端补k个最高有效位的值,多用于有符号数移位运算。

    Java中用>>表示算术右移,用>>>表示逻辑右移。

    移位运算优先级小于算术运算。

    2.2 整数表示

    • 算术运算溢出:完整的整数结果无法放到数据类型的字长限制中。

    • 执行C程序时,不会将溢出作为错误而发出警告信号。

    • 判断无符号运算是否溢出,例如s=x+y(s、x、y均为无符号数),唯一可靠的判断标准就是s < x或s < y。

    有符号数和无符号数
    • 转换原则:底层的位保持不变

    (1)有符号数→无符号数

    非负数——保持不变
    
    负数——转换成大正数
    

    (2)无符号数→有符号数

    以2^*(w-1)为界限:
    
    小于它——保持不变
    
    大于它——转换为负数值
    

    [0,2(w-1))范围内的数字,无符号和补码表示相同;范围之外的,需要加上或者减去2w

    • 运算时若同时存在有符号数和无符号数,会隐式的将有符号数强制类型转换为无符号数,并且假设这两个数都是非负的。

    2.4 浮点数

    浮点表示对形如 V=x*2^y 的有理数进行编码;适用于:非常大的数字(|V|>>0)、非常接近于0的数字(|V|< < 1)、实数运算的近似值

    浮点数的位表示划分为三个字段,分别对这些值进行编码:

    一个单独的符号位 s 直接编码符号 s。
    k位的阶码字段 exp = e(k-1)……e1e0编码阶码 E。
    n位小数字段 frac = f(n-1)……f1f0编码尾数 M,但是编码出来的值也依赖于阶码字段的值是否等于0。
    

    IEEE浮点格式定义了四种舍入方法:

    向偶舍入(默认):将数字向上或向下舍入,是的结果的最低有效数字为偶数。能用于二进制小数。
    向零舍入:把整数向下舍入,负数向上舍入。
    向下舍入:正数和负数都向下舍入。
    向上舍入:正数和负数都向上舍入。
    
    浮点加法
    - 浮点加法是可交换的
    
    - 浮点加法不具结合性
    
    - 大多数值的浮点加法都有逆元,除了无穷和NaN。
    
    - 浮点加法满足单调性
    
    浮点乘法
    - 浮点乘法是可交换的
    
    - 浮点乘法不具有结核性
    
    - 浮点乘法的单位元为1.0
    
    - 浮点乘法在加法上不具备分配性
    
    - 在一定条件下满足单调性
    
    C语言中的浮点数
    int、float、double的相互转换:
    
    int → float 不会溢出但有可能舍入
    
    int/float → double 结果保留精确数值
    
    double → float: 可能溢出为±∞,由于精确度较小也有可能被舍入
    
    float/double → int 向零舍入,可能溢出。
    

    教材学习中的问题和解决过程

    • 问题1:第二章的公式太多,理解记忆有难度。
    • 问题1解决方案:希望老师上课时能以一两个公式为例来讲解一下,方便理解。

    代码调试中的问题和解决过程

    代码托管

    (statistics.sh脚本的运行结果截图)

    上周考试错题总结

    • 错题1及原因,理解情况
    • 错题2及原因,理解情况
    • ...

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 其他

    本周结对学习情况

    -[20155318](http://www.cnblogs.com/lxy1997/)
    - 结对照片
    - 结对学习内容
        - XXXX
        - XXXX
        - ...
    

    其他(感悟、思考等,可选)

    本周学习的知识是信息相关的基础知识,涉及到的公式较多,需要记忆的知识点也很多,还需要慢慢理解消化。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 133/133 1/1 8/8
    第三周 159/292 1/3 10/18

    尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
    耗时估计的公式
    :Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:15小时

    • 实际学习时间:10小时

    • 改进情况:

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    网络日志流量分析-第一部分.doc
    Azkaban.Sqoop_网站流量日志分析2
    飞机加油问题
    9个点画10条直线,要求每条直线上至少3个点
    vector
    Selenium VS Webdriver
    B/S测试与C/S测试之区别
    几款代码比较工具
    单元测试-圈复杂度计算
    为什么并行测试很困难以及如何使用 ConTest 辅助测试
  • 原文地址:https://www.cnblogs.com/guyanlin/p/7607914.html
Copyright © 2011-2022 走看看