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小时

    • 改进情况:

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

    参考资料

  • 相关阅读:
    Spring boot 整合 Mybatis + Thymeleaf开发web(一)
    JAVA截取字符串的几种方式
    【转】JAVA异常报错大全
    Linux中允许远程用户登录访问mysql的方法
    Ubuntu系统下将默认的python2.7升级到3.5
    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
    python将数据写入excel代码,python与office交互
    pyqt4桌面软件各种画布组合结构实例
    python之pyqt4的简单窗口布局以及信号和槽(上代码)
    python 005 正则表达式
  • 原文地址:https://www.cnblogs.com/lnaswxc/p/7669969.html
Copyright © 2011-2022 走看看