您的位置:首页 > 其它

第四周学习报告

2015-10-04 17:01 162 查看
一、信息存储。

1、数字表示

无符号编码

补码编码

浮点数编码。

2.信息存储

十六进制的表示:在C语言中,以0X或者Ox开头的数字常量被认为是十六进制的值。在二进制表示法中,它的值域是00000000(2)~11111111(2);如果用十进制表示就是0(10)~255(10);

字长:指明整数和指针数据的标称大小。字长决定的最重要的系统参数就是虚拟地址空间的最大大小。

寻址和字节顺序:小端法;大端法;双端法

反汇编器:是一种确定可执行程序文件所表示的指令序列的工具。

3.表示字符串

最常见的是ASCII码。文本数据比二进制数据具有的平台独立性。

布尔代数

位向量:有固定长度为w、有0和1组成的串。

位极运算:实现掩码运算,这里的掩码是一个位模式,表示从一个字中选出的位的集合。

确定一个位级表达式的结果的最好的方法,就是将十六进制的参数扩展到二进制表示并执行二进制运算,再转换回十六进制。

4.逻辑运算

逻辑运算认为所有非零的参数都表示TRUE,而参数0表示FALSE.他们返回1或者0;按位运算只有在特殊情况下,也就是参数被限制为0或者1时,他们之间第二个重要的区别就是,如果对第一个参数求值,就能确定表达式的结果,那么逻辑运算就不会对第二个参数求值。C语言标准并没有明确定义应该使用哪种类型的右移,对于无符号数据,右移必须是逻辑的。对于有符号数据,算术的或者逻辑的右移都可以。实际上,几乎所有的编译器/机器组合都对有符号的数据使用算术右移,且许多程序员都假设机器会使用这种右移。

二、整数的表示。

1、整型数据类型

用位来编码整数的两种方式:一种只能表示非负数,而另一种只能表示负数、零和正数。

整数数据类型——表示有限范围的整数,每种类型都能用关键字来指定大小,而不同大小的分配字节数会根据机器的字长和编译器有所不同。根据字节分配,不同的大小所能表示的值的范围是不同的。

无符号数编码

补码编码——有符号数最常见的表示方法

有符号数的其他表示方法——反码和原码

2、有符号数和无符号数之间的转换

转换的原则是底层的位表示不变

零扩展——将一个无符号数转换为一个更大的数据类型,表示在开头加0。

符号扩展——将一个补码数字转换为一个更大的数据类型。

截断数字。

三、整数运算

1、无符号数加法

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

2、补码加法

正溢出   x+y-2(w)

正常    x+y

负溢出   x+y+2(w)

3、补码的非,无符号乘法,补码乘法

4、乘以常数

无论是无符号运可能算还是补码运算,乘以2的幂都会导致溢出。

四、浮点数

IEEE。

当一个数字不能被准确的表示为这种格式,就必须向上调整或者向下调整

1、二进制小数

第一步是考虑含有小数值的二进制数字。

2、IEEE浮点表示

符号

尾数

阶码

三种情况:规格化的值和非规划的值和特殊值

3、舍入

4、浮点运算

感想:通过本章的学习,我们学了三种重要的数字表示,其中十六进制数的表示和二进制数的表示。还有有符号数有正码和反码之分,最常用的是用补码来表示。有符号数和无符号数的转化规则。整数类型的运算,还有浮点的表示和运算
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: