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

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

    教材学习内容总结(信息的表示和处理)

    信息存储

    • 虚拟存储器:计算机级程序将存储器视为一个非常大的字节数组
    • 地址:存储器每个字节的唯一数字标识
    • 程序对象:程序数据、指令和控制信息
    • 十六进制表示法
      • 以0X或0x开头的数字常量常被认定为十六进制的值
      • 十进制->十六进制:反复地用16除x,余数从最低位开始计
    • 字:
      • 每个计算机都有一个字长,指明整数和指针数据的标称大小。因为虚拟地址是以这样的一个字来编码的,所以字长最重要的系统参数就是虚拟地址空间的最大大小。
      • 对于一个字长为w位的机器而言,虚拟地址的范围为0~2w-1,程序最多访问2w字节。
    • 寻址和字节顺序
      • 小端法:最低有效字节在最前面的的方式
      • 大端法:最高有效字节在最前面的方式
    • 布尔代数:
      - 逻辑运算:
      - 所有逻辑运算都可以用与、或、非表达(最大式、最小式)而与或非可以用“与非”或“或非”表达,所以,只要一个与非门,就可以完成所有的逻辑运算
      - 逻辑运算符:逻辑与(&&);逻辑或(||);逻辑非(!)
      - 位运算:结果是位向量;按位与(&) 二进制每一位遇0为0;按位或(|) 二进制每一位遇1为1;按位异或(^) 00=0,01=1,10=1,11=0;按位取反(~) 二进制每一位取反
      - 掩码运算:掩码是位运算的重要应用,这里掩码是一个特定位模式,表示从一个字中选择一个位的集合。对特定位可以置一,可以清零。

    整数表示

    • 无符号数编码:对于长度为w的位向量,都有一个唯一的值与之对应;反过来,在0~2^w-1之间的每一个整数都有一个唯一的长度为w的位向量二进制表示与之对应。
    • 补码编码:补码形式是最常见的有符号数的计算机表示方式;将字的最高有效位解释为负权 B2T(W)函数为:B2T(x) = -x(w-1)2(w-1)+∑xi2i(求和从i=0到i=w-2)
    • 有符号数和无符号数之间的转换:
      - 处理同样字长的有符号数和无符号数之间相互转换的一般规则:数值可能会改变,但是位模式不变。
      - c语言允许无符号数和有符号数之间的转换,转换的原则是底层的位表示不变。
    • 扩展一个数字的位表示:
      - 零扩展:无符号数
      - 符号扩展:有符号数
      - short转换成usigned时,先转换大小,转换成int,再变成无符号数
    • 截断数字:将一个w位的数截断为一个k位数字时,我们会丢弃高w-k位,等于计算x mod2^k

    整数运算

    • 无符号数加法:
      - 无符号计算可以看作一种模形式的运算
      - 无符号加法等价于计算和模2^w
      - 溢出:完整的整数结果不能放到数据类型的字长限制中去
      - 当且仅当s<w,发生了溢出,溢出则s=x+y-2^w
    • 补码加法:负溢出,加2w;正溢出,减2w。
    • 补码的非:除-2^(w-1)的补码为本身之外,其他补码都为-x
    • 补码乘法:和无符号乘法运算的位级相同
    • 乘以常数:x<k相当于x*2^k mod2w;对于无符号变量x>>k相当于x/2k

    浮点数

    • 浮点表示对形如 V=x*2^y 的有理数进行编码;适用于:非常大的数字(|V|>>0)、非常接近于0的数字(|V|<<1)、实数运算的近似值;IEEE浮点标准:IEEE标准754。
    • 二进制小数:二进制点左边第i位,权为2i;右边第i位,权为(1/2)i;增加二进制表示的长度可以提高表示的精度。
    • IEEE浮点格式:
      - 表示形式:V=(-1)^s * M * 2^E
      - 符号:s决定这个数是正还是负。0的符号位特殊情况处理。
      - 尾数:M是一个二进制小数,范围为12-ε或者01-ε,ε=(1/2)^n。
      - 阶码:E对浮点数加权,权重是2的E次幂(可能为负数)。
    • C语言中的浮点数:
      - int转换成float,数字不被溢出,但是可能被舍入
      - int/float转换成double,能保留精确数值
      - double转换成float,值可能被溢出,还可能被舍入
      - float/double转换成int,值将会向零舍入

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

    在练习十进制与十六进制的转换时,将Perl语言脚本直接写进c文件中,发现根本编译不出。如下截图:

    在看了卢肖明同学的关于Perl语言脚本运行方法后,明白了Perl语言是另外一种语言,根据小明同学提供的方法最终实现了十进制与十六进制的转换。

    本周代码托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 4000行 30篇 400小时
    第一周 0/0 2/3 10/20 掌握了几个命令
    第二周 0/0 1/4 8/28 熟练了vim编辑器的操作
    第三周 40/40 1/5 12/40 开始敲代码了

    参考资料

  • 相关阅读:
    FileZilla
    dos2unix转换从win下vimruntime下的文件
    在 MFC SDI 程序中实现多语言程序界面
    AheadLib 2.2.150
    F982,F983班数理逻辑期末考试试题
    论文公式规范。
    Servlet/JSP配置详解
    COM沉思录(八)
    XML配置文件的读取处理
    天使和魔鬼(转载)
  • 原文地址:https://www.cnblogs.com/huangyaqi/p/5928141.html
Copyright © 2011-2022 走看看