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

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

    教材学习内容总结

    1.理解二进制在计算机中的重要地位

    二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。(计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。

    2.掌握布尔运算在C语言中的应用

    c语言中位运算中的布尔运算有:&、|、~、^
    &:按位与
    |:按位或
    ~:按位非
    ^:按位异或,相同为0,相异为1。
    计算规则为:

    位的逻辑运算的作用:

    • 使用位向量做集合编码;
    • 使用位向量做掩码mask;
    • 使用异或的性质进行变量的交换值;

    3. 理解有符号整数、无符号整数、浮点数的表示

    1、有符号数机器表示
    以16位有符号数为例:
    对于正数,非常简单,最高位为0,其余15位表示数值就可以了,比如0110 1110 0101 1110即0x6e5e,表示+28254;
    对于负数,稍微有点麻烦,以-4为例,首先计算4的二进制补码,即0000 0000 0000 0100按位取反再加1,即1111 1111 1111 1100,也即0xFFFC。
    那么,在有符号数和无符号数之间进行转换时就要注意这一点,如下所示:
    int a=-1589;
    unsigned int b;
    b=a;
    那么b是多少呢?肯定不是1589,而是63947。
    2、浮点数表示
    无论是单精度还是双精度,都有三个部分:

    • 符号位;
    • 指数位;
    • 尾数位;
      float存储方式如下(高位在前,低位在后):
      符号(1位)| 指数(8位)| 尾数(23位)
      double存储方式如下(高位在前,低位在后):
      符号(1位)| 指数(11位)| 尾数(52位)

    将一个float数转换成内存存储格式步骤:
    以3.25为例,将3.25化成二进制,即11.01,用科学计数法表示,则为1.101*2^1,符号位是0,指数是1,尾数是101;但指数位还要进一步计算,需要用127加上刚才算得的指数1,即128(二进制表示1000 0000),
    这样3.25的机器存储格式为:(符号位0)(指数1000 0000)(尾数101 0000 0000 0000 0000 0000),即0x40500000。

    4.理解补码的重要性

    • 使符号位能与有效值部分一起参加运算,从而简化运算规则.
    • 使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计

    所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码。

    5.能避免C语言中溢出,数据类型转换中的陷阱和可能会导致的漏洞

    参考:https://www.it610.com/article/5427400.htm

    6.进一步理解“信息=位+上下文”

    参考:https://www.cnblogs.com/yilinglingyi/p/4224918.html

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

    xxx
    xxx

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

    xxx
    xxx

    课后作业中的问题和解决过程

    XXX
    XXX

    本周代码托管截图

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

    xxx
    xxx

  • 相关阅读:
    二,数据类型与流程控制语句
    一,cmd指令集与变量
    web第九天,浮动与定位
    web第八天,PS切图与float浮动
    web第七天,标签分类
    web第六天,CSS优先级与盒子模型
    web第五天复合样式与选择器
    web第四天,CSS基础
    web第三天 表单与css基础
    装饰器
  • 原文地址:https://www.cnblogs.com/hollfull/p/12051400.html
Copyright © 2011-2022 走看看