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

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

    教材学习内容总结

    信息的表示与存储

    1、三种数字:

    • 无符号数:基于传统二进制表示法,表示大于或等于0的数字
    • 补码:编码是表示有符号数的最常见方式
    • 浮点数:表示实数的科学计数法的以2为基数的版本

    2、整数溢出:

    一个整数是一个固定的长度,它能存储的最大值是固定的,当尝试去存储一个大于这个固定的最大值时,将会导致一个整数溢出。

    3、信息存储:

    • 大多使用8位的块,字节,作为最小存储器单位
    • 地址:存储器中每一个字节都有一个唯一的数字来作为其标识
    • 虚拟地址空间:即所有可能的地址的集合

    4、进制转换:

    二进制、八进制、十进制、十六进制(转换:以二进制作为中间变量)

    5、字:

    每台计算机都有一个字长,指明整数和指针数据的标称大小,因为虚拟地址是以这样的一个字来编码的,所以字长决定的最重要的系统参数就是虚拟地址空间的最大大小。

    当今大多数计算机已经是64位,书上的32位已经是几年前的数据了。

    对于一个字长为w位的机器来说,虚拟地址的范围是0~2^w-1。程序最多访问2的w次方个字节。

    6、gcc -m32/64:

    可以在64位机上生成32位的代码。

    7、数据大小:

    不同数据类型在32位、64位机器中所占字节数不同,以c语言为例,long int&char *在32位机器中占4个字节但是在64位中占8个字节,所以同样的数据类型声明在不同位数机器上可能会导致错误

    8、字节顺序:

    打端法:小对小,大对大。

    小端法:与大端法相反。

    9、布尔代数:

    逻辑运算:

    • 逻辑与(&&) 遇0为0;
    • 逻辑或(||) 遇1为1;
    • 逻辑非 遇0为1,遇1为0;

    位运算:

    • 按位与(&) 二进制每一位遇0为0;
    • 按位或(|) 二进制每一位遇1为1;
    • 按位异或(^) 00=0,01=1,10=1,11=0;
    • 按位取反(~) 二进制每一位取反。

    逻辑运算与掩码运算:

    • 逻辑运算结果是1或0,位运算结果是位向量
    • 如果对第一个参数求值就能确定表达式的结果,逻辑运算符就不会对第二个参数求值。

    10、整数表示:

    • 程序语言中各数据类型都有最大值以及最小值,不在范围内会发生溢出
    • c,c++支持有符号数以及无符号数,java只支持无符号数
    • 无符号数编码:例如向量x,可以写成[Xn , ... , X0]。如果把向量X看做一个二进制数,那么后者就是他的无符号表示
    • 双射:对应每一个长度为w的位向量,都有一个唯一的值来与之对应
    • 补码编码:补码最高位为符号位,其为1时,代表该数值为负,其为0时,代表该数为非负(在计算机中基本所有的有符号数都使用补码表示)
    • java中对于整数数据类型的取值范围和表示有着十分明确的标准,这是java在任何机器上都能运行表现一致的原因所在
    • c语言中允许有符号数与无符号数之间进行转换,但其原则是底层的位保持不变。且c语言中支持不同数字类型之间做强制类型转换,例如(unsigned)u可以将u转换成一个无符号数
    • 零拓展:在一个无符号数开头简答的添加0,就可以将其转换成一个更大的数据类型
    • 符号拓展:在一个有符号数表示中添加最高有效位的值的副本,将一个补码数字转换成更大的数据类型

    11、浮点数:

    • IEEE:V = (-1)s * M * 2E
    • s-符号 0为正,1为负
    • M-小数
    • E-阶数
    • 向偶舍入(默认):将数字向上或向下舍入,是的结果的最低有效数字为偶数。能用于二进制小数。
    • 向零舍入:把整数向下舍入,负数向上舍入。
    • 向下舍入:正数和负数都向下舍入。
    • 向上舍入:正数和负数都向上舍入。
    • float中:s、exp和frac字段分别为1位、k = 8 位和n = 23位,得到一个32位的表示
    • double中:s、exp和frac字段分别为1位、k = 11 位和n = 52位,得到一个64位的表示
    • 整数与小单精度数的转换:符号位+阶数加127的二进制数+去掉开头1位的数+十个0。

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

    在学习“寻址和字节顺序”这部分内容时,输入P28 图2-4的代码,出现了错误。

    刚开始,编译出现错误。

    之后仔细检查代码,发现是代码打错了。打成了 #include <stdion.h>

    修改后再次编译,还不是成功。

    然后询问了同学,在这段代码中加入了主函数main。问题得以解决。

    本周代码托管截图

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

    这周主要是课本上内容的学习,以及代码的实践。学习过程中,遇到了一点代码上的问题,后来通过询问同学都解决了。本周的学习还算比较轻松。最后,祝大家国庆节快乐!!!!!

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 0/0 1/1 20/20
    第二周 300/300 1/2 20/40
    第三周 300/600 1/2 20/60

    参考资料

  • 相关阅读:
    HDS推出HUS中端阵列 文件、块和对象统一存储
    Volume Shadow Copy Service(VSS)如何工作
    vmware备份
    vdp介绍
    DFS研究
    重设域管理员密码-window server 2008 R2
    Using LACP with a vSphere Distributed Switch 5.1
    To LACP or not to LACP (on a 5.1 vDS)
    iSCSI Network Designs: Part 5 – iSCSI Multipathing, Host Bus Adapters, High Availability and Redundancy
    Multipathing for Software iSCSI
  • 原文地址:https://www.cnblogs.com/20144303sys/p/5927955.html
Copyright © 2011-2022 走看看