浙江大学城市学院实验报告课程名称计算机系统原理实验实验项目名称实验三数据的机器级表示实验成绩指导老师(签名)日期一、实验目的:1、通过无符号数和带符号整数之间的相互转换来理解无符号数和补码整数的表示;2、了解IEEE754浮点数在机器中的应用,特别是一些特殊值的处理
二、实验步骤:1、用32位补码表示的机器上编译并执行以下程序,记录程序的执行结果,并解释原因
图3-1运行结果:-
对运算结果的解释:第一个结果:因为在ISOC90标准中,编译器将-2147483648分为两个部分来处理
首先将2147483648看成无符号整型,其机器数为0x80000000,然会对其取负,结果仍为0x80000000,还是将其看成无符号整型,其值仍为21474833648,因此前者大于后者
第二个结果:由于i为int型变量,因此这两个数皆为带符号数,前者小于后者
第三个结果:编译器首先将2147483647看成带符号整型,然后对其取负,得到-2147483647,然后对其-1得到-2147483648,因此前者大于后者
2、编写程序,计算表2
1中的表达式,说明运算类型(无符号、带符号),得到运算结果,并说明为什么是这样的运算结果(参考第二章习题8);源代码:-
运算结果:对运算结果的解释:1
0和0U都是无符号数,值相等2
-1和0都为带符号数,因此前者小于后者-
0后加上U表示无符号数,因此比较时前者大于后者4
-2147483647-1的计算结果为一个int型整数,为带符号数,因此前者大于后者
加上U的数都为无符号数,因此前者小于后者6
2147483648U在经过int强制类型转换后,变为带符号的-2147483648,因此前者大于后者7
两个数皆为带符号数,因此前者大于后者8
数据转化为无符号数,前者11⋯1B(2^32-1)>后者11⋯10B(2^32-2)3、分析以