• 2017-2018-3 20155215 《信息安全系统设计基础》第3周学习总结


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

    教材学习内容总结

    • 进制转换,十六进制
    • show_bytes
    • 大端法:最高有效字节在前面。
    • 小端法:最低有效字节在前面——“高对高,低对低”。(一般用到的是小端法,比如在X86汇编中我们接触到的就是小端法。)
    • 布尔代数
    • 位级运算和逻辑运算
    • 补码编码
    • 扩展从一个较小的数据类型转换为较大的数据类型,同时保持数值不变。
    • 零扩展:多用于无符号数转换为一个更大的数据类型。只需在开头加上0即可。
    • 符号扩展:多用于补码数字转换,最高有效位是什么,就添加什么。

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

    • 问题1:编译器是如何处理信息的?

    • 问题1解决方案:编译器是一种特殊的程序,它可以把以特定编程语言写成的程序变为机器可以运行的机器码。把一个程序写好,这时利用的环境是文本编辑器。这时我程序把程序称为源程序。在此以后程序员可以运行相应的编译器,通过指定需要编译的文件的名称就可以把相应的源文件(通过一个复杂的过程)转化为机器码了。

    • 问题2:布尔代数的意义是什么?

    • 问题2解决方案:布尔代数教会了人们用数学的方式解决逻辑问题。它是数字逻辑电路的强大理论支柱。
      布尔代数是布尔在19世纪上半叶,成功得使用数学来做逻辑分析,使得亚里士多德的三段论终于可以用数学来证明。
      他的贡献在于:遵循数学本质,从中发展了不同于常见的以记数发展起来的数学——布尔代数。
      比较:
      数学本质上是:对操作数按操作符表达的意义进行操作,得出的结果也是操作数。
      布尔代数是对逻辑的数学表现(逻辑,就是由条件推出结果)
      布尔代数中,操作数为逻辑值:1和0,分别代表“肯定”和“否定”,并规定了三个基本的操作符:与或非,用以描述

    生活中的三种基本逻辑场景:
    与表示:要得出结果(是或否),需要考查两个条件的成立情况
    或表示:要得出结果(是或否),只要考查其中一个条件的成立情况
    非表示:要得出结果(是或否),要看其相反的情况

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

    • 问题1:我在编写书上P31,P32的代码时,出现如下错误:

    • 问题1解决方案:最后我将代码修改成如下所示:
    #include<stdio.h>
    
    typedef unsigned char *byte_pointer;
    
    void show_bytes(byte_pointer start,size_t len){
      size_t i;
      for (i=0;i<len;i++)
            printf ("%.2x",start[i]);
       printf("
    ");
    }
    
    void show_int(int x){
     show_bytes((byte_pointer) &x,sizeof(int));
    }
    
    void show_float(float x){
      show_bytes((byte_pointer) &x,sizeof(float));
    }
    
    void show_pointer(void *x){
      show_bytes((byte_pointer) &x,sizeof(void *));
    }
    
    
    int main( ){
      int ival=8;
      float fval =(float) ival;
      int *pval=&ival;
      show_int(ival);
      show_float(fval);
      show_pointer(pval);
    }
    
    

    然后才编译成功:

    代码托管

    上周考试错题总结

    暂无

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • 内容详实,有出现的问题和问题的详细解决情况

    本周结对学习情况

    - [20155232](http://www.cnblogs.com/lsqsjsj/p/7611470.html)
    - 结对照片
    

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

    这一周发现我有一些C语言的东西不够扎实,而且出现了一些遗忘,本来很多问题都是可以避免的,但是感觉自己却没有做好,觉得很不应该。而且自己在时间的管理和利用上也有一定的问题,需要花更多的心思来自我调整,才能取得更好的成绩。上学期的JAVA成绩就不够理想,希望自己能够提高自控能力,努力做得更好。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第三周 141/2 2/2 18/38

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

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

    • 计划学习时间:20小时

    • 实际学习时间:16小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    在 Windows 上测试 Redis Cluster的集群填坑笔记
    vmware安装黑苹果教程
    微信支付v3发布到iis时的证书问题
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(连接篇SQL Server on linux)
    Linux下安装SQL Server 2016(安装篇SQL Server on linux)
    Linux下安装SQL Server 2016(准备篇SQL Server on linux)
    客服端与服务端APP支付宝支付接口联调的那些坑
    ASP.NET MVC]WebAPI应用支持HTTPS的经验总结
    .net平台下C#socket通信(中)
  • 原文地址:https://www.cnblogs.com/xuanyan/p/7673751.html
Copyright © 2020-2023  润新知