5233杨光--第三周实验报告
信息的表示和处理
一、数字表示
1、 无符号数:编码基于传统的二进制表示法表示大于或等于零的数字。
2、 补码:编码是表示有符号整数的最常见方法,可以是正或者是负的数字。
3、 浮点数:编码是表示实数的科学计数法的以二位基数的版本。
***当结果太大不能表示时会溢出,大量安全漏洞都是由于算数运算引发的***
二、信息存储
1、最小的可寻址存储器单位:字节
2、虚拟存储器:每个字节都由唯一的数字标识,称为地址
3、虚拟地址空间:所有可能地址的集合
4、每个程序对象可视为字节块,程序本身是一个字节序列
***十六进制表示法
0x...
当x是2的非负整数二次幂时,将n写作i+4j的形式,j表示0的个数
i=0 :1 i=1 :2 i=2 :4 i=3 :8
进制转换代码
***字
字长:指明整数和指针数据的标称大小
字长为w,虚拟地址范围:0~2的w次方-1,最多访问2的w次方个字节
大多数计算机字长为32位,实验楼为64位
gcc -m32 可以在64位机上生成32位的代码
***数据大小
见书p26图2-3
两种不同的浮点数格式:单精度 双精度
格式:4字节 8字节
***寻址和字节顺序
小端法:最低有效字节在最前面,高对高,低对低
大端法:最高有效字节在最前面,相反
反汇编器:确定可执行程序文件所表示的指令序列的工具
C 强制类型转换
sizeof 确定对象使用字节数
不同的操作系统有不同的分配规则,结果相同,指针值却完全不同
字节模式 整型 0x00003039 浮点数 0x4640E400
***表示字符串
字符串:以null字符结尾的字符数组
文本数据比二进制数据具有更强的平台独立性
库函数strlen不计算终止的空字符
***表示代码
二进制代码是不兼容的,很少能在不同操作系统间移植
2.1.7 布尔代数简介
与 或 非 异或
位向量:表示有限集合
***C语言中的位级运算
确定一个位级运算最好的方法:将十六进制的参数扩展成二进制表示并执行二进制运算,然后再转换回十六进制
常见用法:掩码运算
掩码:位模式,从一个字中选出的位的集合
***C语言中的逻辑运算
0 false 非0 true
如果对第一个参数求值就能确定表达式的结果,那么逻辑运算符就不会对第二个参数求值
***C语言中的移位运算
<< >>
逻辑右移:左端补0
算数右移:左边补最高有效位
对于无符号数据,右移必须是逻辑的
三、整数表示
两种方式
***整型数据类型
可表示负数,零,和正数
取值范围中,负数的范围比整数大1
***无符号数的编码
重要属性:每个介于0~2的w次方-1之间的数都有唯一一个w位的值编码(双射函数)
***补码编码
最常见的有符号数的计算机表示方式就是补码形式
将字的最高有效位解释为负权
最高有效位:符号位
权重-2的位数次方,是无符号表示中权重的负数
最小值[10...0] 最大值[01...1]
UMax TMin TMax
P42页表
|TMin|=|TMax|+1
UMax=2TMax+1
***有符号数和无符号数之间的转换
数值可能会改变,但是位模式不变
这一段没太看懂
***C语言中的有符号数与无符号数
大多数数字都默认为有符号的
要创建一个无符号常量,要加上后缀U或u
转换的原则是底层的位保持不变
如果一个运算一个有符号一个没符号,会将有符号强制转换为无符号
***扩展一个数字的位表示
在不同字长的整数之间转换,同时又保持数值不变
无符号数:开头添0(零扩展)
补码:添加最高有效位值得副本(符号扩展)
***截断数字
减少一个数字的位数
截断一个数字会改变值(溢出)
四、整数运算
***无符号加法
可以被视作一种模运算形式
溢出:完整的整数结果不能放到数据类型的字长限制中去
2.3.2 补码加法
2.3.3 补码的非
2.3.4 无符号乘法
2.3.5 补码乘法
2.3.6 乘以常数
2.3.7 除以2的幂
五、 浮点数
对形如V=x*2的y次方的有理数进行编码
***二进制小数
重点掌握表示方法,p69表
***IEEE浮点表示
标准:V=(-1)的s次方*M*2的E次方
符号:s决定正(0)负(1)
尾数:M是二进制小数
阶码:E的作用是对浮点数加权
情况1:规格化的值:当exp的位模式既不全是0,也不全是1
情况2:非规格化的值:阶码域全0
情况3:特殊值:阶码全1
***舍入
找到最接近的匹配值
四种舍入方式
默认方法找到做接近的匹配,其他三种用于计算上界和下界
向偶数舍入(默认):向上舍入,向下舍入
***浮点运算
不具有结合性
满足了单调性
只有有限的范围和精度
***C语言中的浮点数
float double
感想:这部分讲的基本和以前学过的知识能相结合,所以不是很难理解,学的较为轻松,就是补码转有符号数还是不是非常熟练,需要多练习。
转载于:https://www.cnblogs.com/yg137565645/p/4861267.html
5233杨光--第三周实验报告相关推荐
- 20162329 张旭升 实验三:实验报告
实验三:实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 张旭升 学号:20162329 指导教师:娄嘉鹏 王志强 实验日期:5月12日 实验密级: 非密级 预习程度: 已预习 必修/选修 ...
- c语言程序设计编程解读,C语言程序设计第三次实验报告解读
<C语言程序设计第三次实验报告解读>由会员分享,可在线阅读,更多相关<C语言程序设计第三次实验报告解读(15页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计实验报告专业 ...
- 20135302魏静静——linux课程第三周实验及总结
linux课程第三周实验及总结 一.实验:跟踪分析Linux内核的启动过程 使用gdb跟踪调试内核从start_kernel到init进程启动 使用实验楼的虚拟机打开shell cd LinuxKer ...
- 第三次实验报告MapReduce
第三次实验报告MapReduce(编程调试wordcount程序 生成jar包在虚拟机上运行) 实验目的: MapReduce原理及操作 1.MapReduce原理 Ma和 Reduce,当向 Map ...
- 计算机网络技术实验报告三,计算机网络第三次实验报告
计算机网络第三次实验报告 (8页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 计算机网络第三次实验报告实验一:网络常用命令的使用一. 实验目 ...
- 计算机图形学二维图形基本变换实验原理,江苏大学-计算机图形学第三次实验报告-二维图形变换...
<江苏大学-计算机图形学第三次实验报告-二维图形变换>由会员分享,可在线阅读,更多相关<江苏大学-计算机图形学第三次实验报告-二维图形变换(13页珍藏版)>请在人人文库网上搜索 ...
- c语言数据结构二叉树实验报告,数据结构实验三二叉树实验报告.doc
数据结构实验三二叉树实验报告 数据结构实验报告 实验名称: 实验三--二叉树 学生姓名: XX 班 级: 班内序号: 学 号: 日 期: 1.实验要求 1.1实验目的 通过选择下面两个题目之一进行实现 ...
- 西安交通大学计算机组成原理第三章,西安交通大学计算机组成原理专题实验(上)第三次实验报告.pdf...
计算机组成原理专题实验报告(三) 学生姓名 专业/班级 计算机11 班 学 号 所在学院 电信学院 指导教师 姜欣宁 提交日期 2013 年12 月19 日 计算机组成原理专题实验(三) --运算器模 ...
- 计算机组成原理um实验总结,计算机组成原理第三次实验报告.doc
机器号___________________ 计算机组成原理 实验报告 专业班级: 姓 名: 机器号: 学 号: E-mail: 指导教师: 总成绩: 分步成绩: 出勤: 实验表现 实验报告: 实验五 ...
最新文章
- 手撕FSG2.0壳(有坑点)
- Sentinel 连接数据源
- Java多线程学习十三:synchronized 和 Lock 区别以及孰优孰劣,如何选择?
- 普通文档怎么换成php,腾讯在线文档如何转化为普通文档
- 对不起,云计算又走错路了
- 机器学习系列(一), 监督学习和无监督学习
- 【微信小程序】二维数组列表渲染
- 福州大学866信号与系统初试经验分享
- android怎么美化ui,安卓教程第一期最终篇(转)systemui.apk最全修改美化
- 【k8s】7、pod控制器详解
- Windows系统自带的DOS窗口
- 大数据分析了50万条拼多多商品数据, 得出了这样的结论
- can only concatenate str (not “NoneType“) to str
- 现场直击|ChinaJoy2018,最大惊喜竟然不是游戏
- 对抗生成网络GAN系列——GANomaly原理及源码解析
- 华为大数据的创新之路
- 【区块链】区块链学习
- 自动化测试和性能测试哪个有前途?
- 【转】终于搞明白什么叫双卡双待双模双通手机
- 侯捷C++课程笔记03: STL标准库与泛型编程