• 《信息安全系统设计基础》第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函数:

    代码运行结果:

    代码托管截图

  • 相关阅读:
    c#实现windows远程桌面连接程序
    基于.NET平台常用的框架整理
    c#无限循环线程如何正确退出
    c# 内存的具体表现- 通用类型系统 深拷贝 浅拷贝 函数传参
    coco2d-x convertToWorldSpace介绍
    Effective C++条款20:宁以pass-by-reference-to-const替换pass-by-value。Test code
    函数指针与指针函数返回值的区别
    游戏开发那些事
    lua 根据指定字符拆分table字符串(转载)
    实习和学习的双重压力
  • 原文地址:https://www.cnblogs.com/20145210ysy/p/5928203.html
Copyright © 2020-2023  润新知