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

    第二章 信息的表示和处理

    1.数字表示:

    无符号、补码、浮点数

    2.信息存储

    1.进制:

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

    2.字

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

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

    字长决定虚拟地址空间的最大大小。

    3.字节顺序

    是网络编程的基础
    小端法——在存储器中按照从最低有效字节到最高有效字节的顺序存储对象。
    大端法——从最高有效字节到最低有效字节的顺序存储。
    (小端法:高对高,低对低。大端法:高对低,低对高。)
    

    4.布尔代数

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

    逻辑运算——0或1
    位运算————位向量
    *位向量:有固定长度为w,由0、1组成的串。每个对应元素之间的运算。
    

    掩码。通过指定一个位向量掩码,有选择的使能或不能屏蔽一些信号。(0表示被屏蔽)

    5.整数表示

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

    64位机器用8个字节表示;32位机器用4个字节表示。
    *负数的范围比整数的范围大1。
    

    6.补码

    最常见的有符号数的计算机表示方式。

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

    最高有效位也叫符号位。

    7.无符号数与有符号数转换

    强制类型转换的结果保持位值不变,改变解释这些位的方式。

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

    无————>有:U2Tw函数
    有————>无:T2Uw函数
    *w表示数据类型的位数。
    

    8.扩展数字的位表示

    零扩展:在开头添0。(将无符号数转换成更大的数据类型)

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

    9.截断数字

    可能会改变数值——溢出的一种形式。

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

    3.整数运算

    1.溢出

    一个算术运算的溢出——完整的整数结果不能放到数据类型的字长限制中。

    x+y>=x,若s没有溢出,可以肯定s>=x;若s溢出,s=x+y-2^(w).
    *s=x+(u w)y. x>=0,y<=2^(w)-1,均是非负整数。
    

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

    4.浮点数

    标准:IEEE标准754

    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.将浮点数的位表示划分为三个字段,分别对这些值进行编码:

    一个单独的符号位s直接编码符号s。

    k位的阶码字段exp = ek-1…e1e0编码阶码E。

    n位小数字段frac = fn-1…f1f0编码尾数M,但是编码出来的值也依赖于阶码字段的值是否等于0。

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

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

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

    遇到问题与总结

    1.问题

    1.什么是强制类型转换结果保持位值不变,只改变解释这些位的方法?

    解决:比如,将float f强制转换成int f float f=5.75;printf("(int)f=%d,f=%f ",(int)f,f);f虽强制转为int型,但只在运算中起作用,是临时的,而f本身的类型并不改变。因此,(int)f的值为 5(删去了小数)而f的值仍为5.75。(http://baike.haosou.com/doc/6223849-6437161.html)

    2.位模式到底是指什么模式?

    解决:不论是什么进制的数字串都是可以视为此进制的一种位模式。比如,八进制就是八位模式。(http://wenda.haosou.com/q/1364884412062332)

    3.位模式和位向量有什么关系?

    解决:没关系。位向量就是由一些二进制位组成的向量。位向量可以用很少的内存来存储Boolean变量。(参考课本第32页)

    4.perl的使用中出现问题。

    解决:开始保存时存为了.c文件,但是无法执行,在网上知道保存时应该存为XX.pl。参考http://blog.sina.com.cn/s/blog_4af3f0d20100ebbb.html和http://wenda.haosou.com/q/1365666219061443。但是仍然出现找不到文件的错误,无法产生进制转换的输出。

    5.对IEEE浮点表示还是没学明白

     

     
  • 相关阅读:
    【网络安全】十三步简单入侵个人电脑教程
    [深入学习Web安全](11)之XSS玩法
    W3bsafe]SQLmap过狗命令的利用+教程
    Python 爬虫修养-处理动态网页
    WEB站点服务器安全配置
    jboss final 7.1.1相关error以及解决方式
    “System.IO.FileNotFoundException”类型的未经处理的异常在 mscorlib.dll 中发生
    HDU 2196 Computer 树形DP经典题
    python3连接Mairadb数据库
    jQuery动画animate()的使用
  • 原文地址:https://www.cnblogs.com/zzzz5/p/4850104.html
Copyright © 2011-2022 走看看