20145329 《信息安全系统设计基础》第三周学习总结
教材学习内容总结
无符号数编码基于传统的二进制表示法,表示大于或等于零数字
补码编码是表示有符号号整数的最常见的方式,有符号整数就是可以为正或为负的数字
浮点数编码是表示实数的科学技术法的以二为基数的版本
-
信息存储
虚拟存储器是一个非常大的字节数组
虚拟地址是以一个字来编码的,字长决定的最重要的系统参数就是虚拟地址空间的最大大小
可移植性是使程序对不同数据类型的确切大小不敏感,对于32位机器来说,同样的掩码可以写成0×FFFFFFFF,但是这样的的代码是不可移植的
对于跨越多字节的程序对象,我们必须建立的两个规则:对象地址以及存储器中如何排列这些字节
多字节对象被存储为连续的字节序列,对象的地址为所使用字节中最小的地址 -
整数表示
补码:最常见的有符号数的计算机表示
表达式×将×值转换成无符号数值,而u将u的值转换为有符号整数
T2U函数将一个有符号数映射为它相应的无符号数十,负数就被转换成大的正数
c语言有符号数和位富豪数转换的原则是最底层的位表示保持不变,在采用补码的机器上,无符号数转换为有符号数,效果就是应用U2Tw,从有符号数转换为无符号数,就是应用函数T2Uw,w表示数据类型的位数。
截断:在32位机器上,将强制int型的x转换为short时,是将32位的int截断为16位的short int。
截断一个数字可能会改变它的值——溢出的一种形式 -
整数运算
无符号数运算可以被视为一种模运算形式
一个算数运算溢出,是指将完整的整数结果不能放到数据类型的字长限制中去。 -
浮点数
IEEE浮点数标准用V=(-1)^s M2^E的形式来表示一个数:
符号:s决定这个数十整数(s=1)还是负数(s=0),而对于数值0的符号位解释作为特殊情况处理
尾数:M是一个二进制小数
阶数:E的作用是对浮点数加权,这个权重是2的E次幂(可能是负数)
IEEE标准中指定浮点运算行为方法的一个优势在于可以独立于任何具体的硬件或软件