实验03整数的表示实验.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《实验03整数的表示实验.doc》由会员分享,可在线阅读,更多相关《实验03整数的表示实验.doc(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-!浙江大学城市学院实验报告课程名称 计算机系统原理实验 实验项目名称 实验三 数据的机器级表示 实验成绩 指导老师(签名 ) 日期 一、实验目的:1、通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示;2、了解IEEE 754浮点数在机器中的应用,特别是一些特殊值的处理。二、实验步骤:1、用32位补码表示的机器上编译并执行以下程序,记录程序的执行结果,并解释原因。图3-1 运行结果:对运算结果的解释:第一个结果:因为在ISO C90标准中,编译器将-2147483648分为两个部分来处理。首先将2147483648看成无符号整型,其机器数为0x80000000,然会对其取负
2、,结果仍为0x80000000,还是将其看成无符号整型,其值仍为21474833648,因此前者大于后者。第二个结果:由于i为int型变量,因此这两个数皆为带符号数,前者小于后者。第三个结果:编译器首先将2147483647看成带符号整型,然后对其取负,得到-2147483647,然后对其-1得到-2147483648,因此前者大于后者。2、编写程序,计算表2.1中的表达式,说明运算类型(无符号、带符号),得到运算结果,并说明为什么是这样的运算结果(参考第二章习题8);源代码:运算结果:对运算结果的解释:1.0和0U都是无符号数,值相等2. -1和0都为带符号数,因此前者小于后者3. 0后加上
3、U表示无符号数,因此比较时前者大于后者4. -2147483647-1的计算结果为一个int型整数,为带符号数,因此前者大于后者。5. 加上U的数都为无符号数,因此前者小于后者6. 2147483648U在经过int强制类型转换后,变为带符号的-2147483648,因此前者大于后者7. 两个数皆为带符号数,因此前者大于后者8. 数据转化为无符号数,前者111B (232-1) 后者1110B (232-2)3、分析以下代码:int sum(int a , unsigned len) int i, sum = 0;for (i = 0; i 二进制00000000-偏移01111111-阶码:
4、01111111 尾数:00011001100110011001101得到二进制机器数:10111111100011001100110011001100十六进制:bf8cccch (与程序验证有出入)6. Double b=10.5 二进制1010.1 规格化后:1.0101*211 符号位:0 阶数:11 阶码:000000000000011+011111111111111=100000000000010 尾0101000000 (52位) 结果即:0100000000000010 0101000000(52位) 十六进制即 4025000000000000 (与程序验证有出入)编程验证源码
5、:查看内存结果截图:5、(选做)设计一个C语言程序,输出一个整数对应的有符号值和无符号值。源码:#include#includeint sumn(char a200)int b200;int len=0;for (int i=0;ai!=0;i+)if (ai=0&ai=A&ai=0;j-)sum=sum+bj*pow(16,k);k+;return sum;int main(void)char num20;int a20; int remain10000; printf(请输入要显示的数据 格式为: 程序 参数 ,如 ./display 0x27n); while (1) gets(num)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 试验 03 整数 表示
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内