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

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

    教材学习内容总结

    1.三种数字表示
    无符号
    基于传统二进制表示法,表示大于或者等于零的数字。

    补码
    表示有符号整数的最常见方式

    浮点数
    表示实数的科学计数法的以二为基数的版本。

    2.信息存储
    1.进制
    二进制、八进制、十进制、十六进制(转换:以二进制作为中间变量)

    十六进制:以0x或0X开头表示,字符A-F可大写可小写。

    2.字
    虚拟地址是以这样的一个字来编码的。

    每台计算机都有一个字长,指明整数和指针数据的大小。

    字长决定虚拟地址空间的最大大小,字长决定的最重要的系统参数就是虚拟地址空间的最大大小。对一个字长为w位的机器,虚拟地址的范围为0-2(w-1),程序最多访问2w个字节。

    3.数据大小
    C语言支持整数和浮点数的多种数据格式

    4.寻址和字节顺序
    小端法——在存储器中按照从最低有效字节到最高有效字节的顺序存储对象。

    大端法——从最高有效字节到最低有效字节的顺序存储。

    (小端法:高对高,低对低。大端法:高对低,低对高。)

    举例:变量x十六进制值为0x01234567,

    5.表示字符串
    ASCⅡ字符码

    a-z的ASC||码为0x61-0x7A。

    6.表示代码
    二进制代码是不兼容的。

    7.布尔代数
    二进制值是计算机编码、存储、操作信息的核心(0、1)

    逻辑运算——0或1

    位运算————位向量

    ~=NOT

    &=AND

    |=OR

    ^=异或

    *位向量:有固定长度为w,由0、1组成的串。每个对应元素之间的运算。 掩码。通过指定一个位向量掩码,有选择的使能或不能屏蔽一些信号。(0表示被屏蔽)

    8.C语言中的位级运算
    我们在布尔运算中使用的那些符号就是C语言所使用的:

    |就是OR(或)

    &就是AND(与)

    ~就是NOT(取反)

    ^就是EXCLUSIVE-OR(异或)

    确定一个位级表达式的结果最好的方法,就是将十六进制的参数扩展成二进制标识并执行二进制运算,然后再转换回十六进制。

    9.C语言中的逻辑运算
    || OR

    && AND

    ! NOT

    所有非零的参数表示TRUE

    参数0表示FALSE
    它们返回1或者0,分别表示结果为TRUE或FALSE

    10.C语言中的移位运算
    (1)x<<k 表示x向左移动k位

    (2)x>>k 表示逻辑右移或算术右移

    3.整数表示

    1. 无符号数编码
      数据类型long long是在ISO C99中引入的。(编译:gcc -std=c99)。

    64位机器用8个字节表示;32位机器用4个字节表示。

    *负数的范围比整数的范围大1。

    2.补码编码
    最常见的有符号数的计算机表示方式。

    正数的补码=原码

    负数的补码=原码各位取反再加1

    最高有效位也叫符号位。

    3.无符号数与有符号数转换
    强制类型转换的结果保持位值不变,改变解释这些位的方式。

    处理同样字长的有、无符号数之间相互转换的规则:数值可能会变,但是位模式不变。(底层的位表示保持不变)

    无————>有:U2Tw函数

    有————>无:T2Uw函数

    *w表示数据类型的位数

    4.扩展数字的位表示
    零扩展:将一个无符号数转换为一个更大的数据类型,在开头添0。

    符号扩展:将一个补码数字转换为一个更大的数据类型,添加最高有效位的值的副本。

    5.截断数字
    可能会改变数值——溢出的一种形式。

    对于无符号数字x,截断到k位,相当于计算:x mod 2(k)。(k次幂)

    4.整数运算

    1. 无符号加法是一种模运算形式。
      2.溢出
      一个算术运算的溢出——完整的整数结果不能放到数据类型的字长限制中。

    x+y>=x,若s没有溢出,可以肯定s>=x;若s溢出,s=x+y-2^(w).

    *s=x+(u w)y. x>=0,y<=2^(w)-1,均是非负整数。

    整数运算实际上是一种模运算形式。表示数字的有限字长限制了可能的值得取值,结果可能溢出。

    5.浮点数
    1.二进制小数
    定点表示法:“.”为界(不能有效的表示很大的数)

    十进制:小数点左边的数字的权是10的非负幂,得到整数值;右边的数字的权是10的负幂,得到小数值。

    二进制:小数点左边的数字的权是2的非负幂,右边的数字的权是2的负幂。

    2.IEEE浮点表示
    1.用V = (-1)s * M * 2E的形式来表示一个数:
    符号:s决定这个数是负数(s = 1)还是正数(s = 0),而对于数值0的符号位解释作为特殊情况处理。

    尾数:M是一个二进制小数,它的范围是1 ~ 2-ε,或者是0 ~ 1-ε。

    阶码:E的作用是对浮点数据加权,这个权重是2的E次幂(可能是负数)。

    2.两种常见的格式
    C语言中的单精度浮点格式float 和双精度浮点格式double。

    在float中,s、exp和frac字段分别为1位、k = 8 位和n = 23位,得到一个32位的表示;

    在double中,s、exp和frac字段分别为1位、k = 11 位和n = 52位,得到一个64位的表示。

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

    P36页的C语言中的逻辑运算怎么也算不对这个逻辑运算,还是不太理解

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

    P28页代码参考30页代码加了主函数后运行失败

    P35页代码

    本周代码托管截图

    链接

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

    本周着重课本知识,总觉得理论知识比代码更有趣更容易理解,因为自己对代码真是很恼火很恼火很差....不断加油吧

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 100/100 2/2 10/10
    第二周 100/200 1/3 20/30
    第三周 80/280 1/4 15/45

    参考资料

  • 相关阅读:
    NC 6系总账凭证联查原始单据
    NCUAP 利用java自带方法实现导入excel取数据
    NC 5导出Excel
    nc 画界面,触发效果(第一种)
    nc6 用业务插件注册来跑按钮事件
    NC 自定义参照类
    SVN忘记登陆用户
    Oracle 忘记sys与system管理员密码重置操作
    OC-之AFNetworking
    OC-之NSDate、万年历
  • 原文地址:https://www.cnblogs.com/20145327gc/p/5927391.html
Copyright © 2011-2022 走看看