码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-10-03 09:31:39      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

三种最重要的数字表示法

无符号:基于传统的二进制表示法,大于等于0

补码:有符号整数

浮点数:实数的科学计数法的以二进制为基数的版本

信息存储

最小的可寻址存储器单位:字节

虚拟存储器:每个字节都由唯一的数字标识,称为地址

虚拟地址空间:所有可能地址的集合

每个程序对象可视为字节块,程序本身是一个字节序列

十六进制表示法

一个字节由8 位组成。

在二进制表示法中,它的值域是000000002 ~ 111111112 ;

如果用十 进制整数表示,它的值域就是010 ~ 25510。

用十六进制书写,一个字节的值域为0016 ~ FF16。

字长(word size),指明整数和指针数据的标称大小(nominal size)

“char”是由于它被用来存储文本串中的单个字符这一事实而得名,但它也能用来存储整数值。

ISO C99 引入的“长长”整 数数据类型允许64 位整数。对于32 位机器来说,编译器必须把这种数据类型的操作编译成执行

一系列32 位操作的代码。(64位机 :gcc -m32 生成32位的代码)

整数运算

无符号加法:可以被视为模运算形式,等价于计算和模2^w。在我的理解看来应该就是跟溢出差不多的性质。运算的溢出是指完整的整数结果不能存放到数据类型的字长限制中。

补码加法:负溢出得到的结果比整数和大16,正溢出得到的结果比整数小16.

补码的非&

无符号乘法计算公式。

补码乘法:给定长度的两个为位向量,无符号乘积的位级与补码乘积的位级表示是相同的,表明及其可以用一种乘法指令来进行有符号数和无符号数的乘法。无符号和补码乘积的低位是相同的

乘以常数:为了缩短计算时间,试着用移位和加法运算的组合来代替乘以常数的乘法。推理过程看书。

除以2的幂:除法比乘法的计算时间更长。除以2 的幂用右移而不是左移。同样推理过程仔细阅读书上的内容。

关于整数运算:整数运算实际是一种模运算。表示数字的有限字长限制了可能的取值范围,结果可能溢出。补码提供了技能表示正数也能表示负数的灵活方法,同时使用了与执行无符号算数相同的位级实现。

浮点数

1.二进制小数

定点表示法:“.”为界(不能有效的表示很大的数)

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

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

 

2.IEEE浮点表示

  • 用V = (-1)s * M * 2E的形式来表示一个数:

符号:s决定这个数是负数(s = 1)还是正数(s = 0),而对于数值0的符号位解释作为特殊情况处理。

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

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

  • 将浮点数的位表示划分为三个字段,分别对这些值进行编码:

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

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

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

  • 两种常见的格式

C语言中的单精度浮点格式float 和双精度浮点格式double。

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

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

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

标签:

原文地址:http://www.cnblogs.com/haikong/p/4853046.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!