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

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

    教材学习内容总结

    第二章 信息的表示和处理

    • 2.1 信息存储
      • 虚拟存储器:计算机级程序将存储器视为一个非常大的字节数组
      • 地址:存储器每个字节的唯一数字标识
      • 虚拟地址空间:所有可能地址集合
      • 程序对象:程序数据、指令和控制信息
      • 2.1.1 十六进制表示法
        • 0X0x开头的数字常量常被认定为十六进制的值
        • 十进制->十六进制:反复地用16除x,余数从最低位开始计
      • 2.1.2 字
        • 字长:指明整数和整数和指针数据的标称大小
        • 字长决定虚拟空间的虚拟地址空间的最大大小,字长为w的机器,虚拟地址范围为0~2^w-1
      • 2.1.3 数据大小
      • 2.1.4 寻址和字节顺序
        • 小端法:最低有效字节在最前面的的方式
        • 大端法:最高有效字节在最前面的方式
        • 双端法:可配置
        • 强制类型转换:允许一种数据类型引用一个对象,而这种数据类型与创建这个对象时定义的数据类型不同
      • 2.1.5 表示字符串
        • 文本数据比二进制数据具有更强的平台独立性
      • 2.1.6 表示代码
        • 二进制代码是不兼容的
      • 2.1.7 布尔代数简介
        • 布尔代数:将逻辑值TRUE和FALSE编码为二进制0和1,设计出的一种研究逻辑推理基本原则的代数
        • ~对应于NOT,&对应于AND,|对应于OR,^对应于异或
        • 有限集合可以用位向量来编码
      • 2.1.8 C语言中的位级运算
        • C语言支持按位布尔运算
        • 确定一个位级表达式的结果最好的方法,就是将十六进制的参数扩展成二进制表示并执行二进制运算,然后再转换成十六进制
        • 掩码:表示从一个字中选出的位的集合
      • 2.1.9 C语言中的逻辑运算
        • 逻辑运算符:||&&!分别对应命题中的OR、AND、NOT,与位级运算不同
        • 移位:<<向左移动右边补零,>>无符号数右数是逻辑右移,有符号数算数或者逻辑右移都可以
    • 2.2 整数表示
      • 2.2.1 整型数据类型
        • int可以用2字节实现,long4字节,long long至少8字节
      • 2.2.2 无符号数的编码
        • 无符号的二进制数,每个介于0~2^w-1之间的数都有唯一一个w位的值编码
      • 2.2.3 补码编码
        • 将字的最高有效位解释为负权
        • 补码的范围不对称:|TMin|=|TMax|+1
        • UMax(w)=2TMax(w)+1
      • 2.2.4 有符号数和无符号数之间的转换
        • 处理同样字长有符号数和无符号数之间的互相转换:数据可能会变,但是位模式不变
      • 2.2.5 C语言中的有符号数与无符号数
        • 要创建一个无符号常量,必须加上后缀Uu
        • 显式强制转换,隐式一种类型的表达式被赋值给另外一种类型的变量
        • %d有符号十进制 %u无符号十进制 %x十六进制
        • 一个运算数是有符号数一个运算数是无符号数,C语言隐式的将有符号参数强制类型转换成无符号数,并设这两个数都是非负的
      • 2.2.6 扩展一个数字的位表示
        • 零扩展:无符号数
        • 符号扩展:有符号数
        • short转换成usigned时,先转换大小,转换成int,再变成无符号数
      • 2.2.7 截断数字
        • 将一个w位的数截断为一个k位数字时,我们会丢弃高w-k位,等于计算x mod2^k
      • 2.2.8 关于有符号数和无符号数的建议
        • Java不支持无符号数,正常右移>>执行算数右移,特殊运算符>>>执行逻辑右移
        • 想把数仅看作是位的集合,没有任何数字意义 ,无符号数是有意义的
    • 2.3 整数
      • 2.3.1 无符号数加法
        • 无符号计算可以看作一种模形式的运算
        • 无符号加法等价于计算和模2^w
        • 溢出:完整的整数结果不能放到数据类型的字长限制中去
        • 当且仅当s<w,发生了溢出,溢出则s=x+y-2^w
        • 阿贝尔群:模数加法形成的一种数学结构
      • 2.3.2 补码加法
        • 负溢出,加2^w
        • 正溢出,减2^w
      • 2.3.3 补码的非
        • 除-2^(w-1)的补码为本身之外,其他补码都为-x
      • 2.3.4 无符号乘法
        • 等价于计算乘积模2^w
      • 2.3.5 补码乘法
        • 和无符号乘法运算的位级相同
      • 2.3.6 乘以常数
        • x<k相当于x*2^k mod2^w
        • x<<k相当于x*2^K
      • 2.3.7 除以2的幂
        • x>k对于非负数与逻辑右移一样
        • 对于无符号变量x>>k相当于x/2^k
      • 2.3.8 关于整数运算的最后思考
    • 2.4 浮点数
      • 对形如V=x*2^y的有理数进行编码
      • IEEE标准754
      • 2.4.1 二进制小数
        • 只是近似的表示,并不精确
      • 2.4.2 IEEE浮点表示
        • IEEE浮点标准用V=(-1)s*M*2E的形式表示一个数
        • 符号:s决定这个数是负数(s=1)还是正数(s=0),对数值0的符号位解释作为特殊情况处理
        • 尾数:M是一个二进制小数,范围是12-e或01-e
        • 阶码:E的作用是对浮点数加权,这个权重是2的E次幂(可能是负数)
        • 单精度浮点格式,s、exp、frac字段分别为1位、k=8、n=23,32位表示
        • 双精度浮点格式,s、exp、frac字段分别为1位、k=11、n=52,64位表示
        • 根据exp的值,被编码的值可以分成三种不同情况
        • 规格化的值:exp的位模式既不全为0,也不全为1(单精度255,双精度2047)
        • 非规格化的值:阶码域为全0
        • 特殊值:阶码全为1
      • 2.4.3 数字示例
      • 2.4.4 舍入
        • 向偶数舍入方式:将数字向上或者向下舍入,使得结果的最低有效数字是偶数
        • 向零舍入方式:把正数向下舍入,把负数向上舍入
        • 向下舍入方式:把正数负数都向下舍入
        • 向上舍入方式:把正数负数都向上舍入
      • 2.4.5 浮点运算
      • 2.4.6 C语言中的浮点数
        • int转换成float,数字不被溢出,但是可能被舍入
        • int/float转换成double,能保留精确数值
        • double转换成float,值可能被溢出,还可能被舍入
        • float/double转换成int,值将会向零舍入

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

    • 问题1:我在33页看了这一段文字
    尽管浮点型和整型数据都是对数值12345编码,但是他们有截然不同的字节模式:整型为0x00003039,而浮点数为0x4640E400.
    
    • 问题1解决方案
      不是很懂为什么编码12345的浮点数是0x4640E400。 我查了百度,说浮点数使用IEEE754标准,然后我去百度查找IEEE754标准的格式,并使用蓝墨云班课中的IEEE计算器问题就解决了。

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

    • 问题1:教材31页代码没有不能运行
    • 问题1解决方案:编译之后才发现是由于没有主函数导致的,我自己编写了一个简单的主函数运行

    代码托管

    上周考试错题总结

    打不开错题

    结对及互评

    点评模板:

    • 博客中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 代码中值得学习的或问题:
      • xxx
      • xxx
      • ...
    • 其他

    本周结对学习情况

    - [20155223](http://www.cnblogs.com/battlefieldheros/p/7629031.html)
    - 结对照片
    - 结对学习内容
       教材第二章和实验楼实验三内容
    

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

    这周是十一放假回来的第一周,放假期间我没有针对课程之前学过的知识进行复习,导致这周在学习过程中有点吃力,因为之前的知识有些生疏了,我想既然我们的教学资源有很多都放在网上,无论是否放假都应该及时复习。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 200/200 2/2 20/20
    第二周 300/500 1/3 18/38
    第三周 500/1000 1/4 22/60

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

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

    • 计划学习时间:10小时

    • 实际学习时间:7小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    e621. Activating a Keystroke When Any Child Component Has Focus
    e587. Filling Basic Shapes
    e591. Drawing Simple Text
    e595. Drawing an Image
    e586. Drawing Simple Shapes
    e636. Listening to All Key Events Before Delivery to Focused Component
    在 PL/SQL 块的哪部分可以对初始变量赋予新值? (选择1项)
    Oracle数据库中,在SQL语句中连接字符串的方法是哪个?(选择1项)
    你判断下面语句,有什么作用?(单选)
    Oracle数据库表空间与数据文件的关系描述正确的是( )
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/7669969.html
Copyright © 2011-2022 走看看