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

    20145206 《信息安全系统设计基础》第3周学习总结

    教材学习内容总结

    本章主要介绍了计算机如何编码以及不同的编码方式,数据类型之间的转换以及溢出等特殊现象。这一章主要是数据处理方面的要点,是以后学习的基础,搞不懂这些以后的编程中很容易出错,虽然不是非常难理解,但还需要扎实掌握。

    p20: 三种数字:无符号数表示大于或等于零的数字
    有符号数(2进制补码)表示有符号整数
    浮点数是表示实数的科学计数法的以二为基数的版本

    p22: 进制转换,注意拿二进制作中间结果就好转了

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

    p26:最低有效字节在最前面的方式,称为小端法;最高有效字节在最前面的方式,称为大端法

    p28: 代码执行一下,自己添加了一个主函数,编译及运行结果如下:

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

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

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

    p39: 补码的利用寄存器的长度是固定的特性简化数学运算。想想钟表,12-1 等价于 12 + 11,利用补码可以把数学运算统一成加法,只要一个加法器就可以实现所有的数学运算。

    p44: 注意C语言中有符号数和无符号数的转换规则,位向量不变。

    p48: 怎么样让负数等于正数?
    在负数后加上U

    p49: 0扩展和符号扩展
    零扩展:简单地在表示的开头添加0;
    符号扩展:在表示中添加最高有效位的值的副本。

    p49:进行代码的编写:

    运行结果:

    p54: 如何让整数运算溢出?如何避免?

    p67: 关于整数运算的最后思考

    p67: 浮点数有科学计数法的基础就不难理解,IEEE标准754

    p68: 浮点数运算的不精确性与舍入

    p70: 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位。

    重点练习

    ·p44 代码放到一个main函数中,可以用GDB单步跟踪一下,理解更深刻

    ·p35 练习2.11, 可以用GDB单步跟踪一下,理解更深刻

    ·p47/p49代码放到一个main函数中,可以用GDB单步跟踪一下,理解更深刻

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

    在编写代码时:

    在编译代码时,遇到下面问题:

    仔细查看代码之后,找到代码问题,又重新编译运行:

    这次运行出的结果与书上的一致.

    本周代码托管截图

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

    本周的学习主要在于实践,考察了编写代码的能力,有些代码不是靠单纯地组合就能运行成功的,需要自己编写主函数,把书中的子程序放进去,我在编程这方面能力并不是很强,需要以后多加巩固练习。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/2 20/30 学习了一些Linux核心命令
    第二周 250/250 1/3 20/50 学习了vim编辑器基础
    第三周 280/530 1/4 18/68 熟练在vim里编程并运行

    参考资料

  • 相关阅读:
    SICP 1.9-1.10
    SICP 1.6-1.8
    SICP 1.1-1.5
    【最小生成树】Codeforces 707B Bakery
    【数学】Codeforces 707C Pythagorean Triples
    【离线】【深搜】【树】Codeforces 707D Persistent Bookcase
    【贪心】Vijos P1615 旅行
    【字符串】【最小表示法】Vijos P1683 有根树的同构问题
    【模拟】Vijos P1005 超长数字串
    【并查集】【模拟】Codeforces 698B & 699D Fix a Tree
  • 原文地址:https://www.cnblogs.com/ZouJR/p/5912226.html
Copyright © 2011-2022 走看看