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

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

    教材内容总结

    三种最重要的数字表示:

    1.无符号:基于传统的二进制方法,表示大于等于0的数字
    2.补码(有符号数):表示有符号数整数的最常见方法,有符号整数就是可以为正或者负的数字
    3.浮点数:表示实数的科学计数法的以2为基数的版本
    ·进制转换:用二进制做中间结果就会好转换
    ·对于一个字长为w位的机器,虚拟地址的范围为0~2的w次-1,程序最多访问2的w次方个字节。现在机器的字长一般是32位或者64位。
    ·c语言支持整数和浮点数的多种类型
    ·gcc -m32 可以在64位机上生成32位的代码
    ·小端法:最低有效字节在最前面,(高对高,低对低)。大多数Intel兼容机采用
    ·大端法:最高有效字节在最前面,(高对低,低对高)。大多数IBM和Sun Microsystems的机器采用
    ·双端法:将其配置成作为大端或小端的机器运行。许多比较新的微处理器采用
    ·逻辑运算(结果是0或1)的符号是和c语言的位级运算(结果是位向量)使用的符号相匹配的。

    位向量的运算可以定义成参数的每个对应元素之间的运算

    ·位向量掩码:有选择的使能或是不能屏蔽一些信号。(可以用特定位置1或者清零)
    ·EXCLUSIVE-OR:异或
    ·逻辑右移:在左端补k个0
    算数右移:在左端补k个最高有效位的值
    无符号数:必须逻辑右移
    有符号数:几乎所有机器都使用算数右移,但是逻辑右移也是可以的

    Java中:x>>k(算数右移k) x>>>k(逻辑右移k)

    ·用C99中的“long long”类型时,编译要用 gcc -std=c99
    ·补码:利用补码表示有符号数,也是简化了运算,所有的运算都可用加法器实现。

    在补码中,将字的最高有效位解释为负权

    ·补码的范围是不对称的:|TMin|=|TMax|+1
    ·补码的最高位是符号位,用带向左箭头的条表示。无符号数的最高有效位有正权重,用带向右箭头的条表示
    ·无符号数与补码相互转换结果:在0<=x<2的w次方-1范围内,T2Uw(x)=x和U2Tw(x)=x。对于这个范围之外,转化需要加上或减去2的w次方
    ·要创造一个无符号常量,必须加上后缀字符‘U’或者‘u’
    ·无符号数与有符号数之间的转换原则是底层的位表示不变
    ·零扩展:将一个无符号数转换为一个更大的数据类型,在表示的开头添加0

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

    ·两个数的w位补码之和与无符号之和有完全相同的位级表示
    ·对于无符号和补码乘法来说,乘法运算的位级表示都是一样的
    ·二进制小数:小数点左边的数字的权是10的非负幂,得到整数值,小数点右边的数字是10的负幂,得到小数值
    ·IEEE浮点表示:给定了位表示,根据exp的值,被编码的值分为三种不同情况:
    ①规格化的值 ②非规格化的值 ③特殊值
    ·IEEE提供最常见精度是单精度和双精度

    教材学习过程中遇到的问题与解决办法

    1.P28页代码不全,需要我们自己编译一个main函数:

    代码运行结果:

    代码托管截图

  • 相关阅读:
    poj 1860 Currency Exchange(最短路径的应用)
    poj 2965 The Pilots Brothers' refrigerator
    zoj 1827 the game of 31 (有限制的博弈论)
    poj 3295 Tautology (构造法)
    poj 1753 Flip Game(枚举)
    poj 2109 (贪心)
    poj 1328(贪心)
    Qt 对单个控件美化
    Qt 4基础
    Bash Shell
  • 原文地址:https://www.cnblogs.com/20145210ysy/p/5928203.html
Copyright © 2011-2022 走看看