浮点数的表示和计算
软考-浮点数的知识点

软考中浮点数的知识点主要包括以下几个方面:1、浮点数的基本概念和表示方法:浮点数是一种用科学计数法表示实数的方法,主要用于计算机中对实数的近似表示。
浮点数的表示方法分为单精度和双精度,其中单精度用32位表示,双精度用64位表示。
2、浮点数的运算:浮点数在计算机中的运算包括加、减、乘、除等基本运算,同时还有取模、取整、四舍五入等高级运算。
需要注意的是,浮点数的运算可能会产生精度误差,因此在实际应用中需要谨慎处理。
3、浮点数的异常情况:浮点数在计算中可能会出现一些异常情况,比如除以0、溢出、下溢等,这些情况需要特殊处理。
4、浮点数的应用:浮点数广泛应用于科学计算、金融计算、图像处理等领域,比如地球物理学中的测量数据处理、金融学中的股票交易计算、计算机游戏中的物理引擎等。
细节:阶符、阶码和数符阶符、阶码和数符都是计算机中用于表示浮点数的重要概念。
阶符用来表示浮点数的指数部分的符号,通常为0或1,表示正数或负数。
阶码是指数部分的值,采用补码表示,其位数与精度有关。
对于单精度浮点数,阶码采用8位补码表示;对于双精度浮点数,阶码采用11位补码表示。
阶码的值由指数部分的二进制表示得到,如单精度浮点数的指数部分是8位,则阶码的范围为-127到+128,双精度浮点数的指数部分是11位,则阶码的范围为-1023到+1024。
数符用来表示浮点数的符号部分,通常为0或1,表示正数或负数。
假设有一个单精度浮点数,其二进制表示为:0 10000100 11011000000000000000000其中,第1位为数符位,0表示正数,1表示负数;接下来的8位为阶码,这个数的阶码为10000100,最后的23位为尾数,为11011000000000000000000。
阶符位指的是阶码的符号位,因为阶码可以是正数或负数,阶符位为0表示阶码为正,为1表示阶码为负。
阶码是指尾数左移或右移的位数,由于计算机中浮点数的科学计数法表示方式,阶码的范围通常是有限的,例如单精度浮点数的阶码范围为-126到127,阶码的实际值是阶符位和剩余位的组合。
浮点数的运算方法

浮点数的运算方法浮点数是计算机中一种表示实数的数据类型,其特点是可以表示带有小数部分的数字。
在进行浮点数的运算时,需要考虑到浮点数的精度问题、舍入误差以及运算顺序等因素。
浮点数的表示方法为:±m×be,其中m为尾数(即小数部分的数值),b为基数或底数,e为指数(表示位移的量)。
1.浮点数加法运算:-对两个浮点数的指数进行比较,将较小指数的浮点数的尾数左移指数之差的位数,使两个浮点数的小数点对齐。
-对齐后的尾数相加,得到一个和。
-对和进行规格化,即将结果的尾数进行处理,使其满足指定的位数限制。
-对规格化后的结果进行舍入运算,得到最终结果。
2.浮点数减法运算:-先将减数的指数调整与被减数的指数相等。
-对齐后的尾数相减,得到一个差。
-对差进行规格化和舍入运算,得到最终结果。
3.浮点数乘法运算:-将两个浮点数的指数相加,得到加法的和,并相应地调整两个浮点数的尾数。
-尾数相乘,得到一个乘积。
-对乘积进行规格化和舍入运算,得到最终结果。
4.浮点数除法运算:-将被除数的指数减去除数的指数,得到差,并相应地调整两个浮点数的尾数。
-尾数相除,得到一个商。
-对商进行规格化和舍入运算,得到最终结果。
在进行浮点数运算时需要注意一些问题:-浮点数的精度问题:由于浮点数的尾数有限位数,所以会存在精度丢失的问题。
这就意味着进行浮点数运算时,可能会出现舍入误差,导致结果有微小的偏差。
-运算顺序:浮点数的运算顺序可能会影响最终结果。
在连续进行多次浮点数运算时,可能会得到不同的结果。
这是因为浮点数的运算不满足交换律和结合律。
因此,在编程中需要谨慎选择运算顺序,以避免结果的不确定性。
-溢出和下溢问题:由于浮点数的范围限制,可能会出现溢出(结果超出浮点数的表示范围)或下溢(结果过小,无法表示)的情况。
针对这些情况,需要进行特殊处理,如返回特定的错误码或进行科学计数法表示。
在实际编程中,可以使用编程语言提供的浮点数运算库或内置函数来进行浮点数运算,以确保运算结果的准确性和可靠性。
浮点数的表示方法

浮点数的表示方法
一、浮点数表示
一个数的浮点形式(设基数是2)可写成:
N = M × 2E
其中:M代表尾数,E代表阶码。
计算机中浮点数只用尾数和阶码表示,其形式如下:
浮点数的精度由尾数决定,数的表示范围由阶码的位数决定。
为了最大限度提高精度,尾数采用规格化形式,既1/2≤M<1。
采用二进制表示时,若尾数大于零,则规格化数应该是01XXXX的形式;若尾数小于零,则规格化数应为10XXXX的形式。
二、机器零
当浮点数的尾数为0或阶码为最小值时,计算机通常把该数当作零,因此程序中进行浮点运算时,判断某数是否为零,通常可以用小于某个极小值来代替。
三、实例
【例1】设X=0.0110×23 ,用补码、浮点数形式表示阶码为X j=011,尾数为00110,这时由于X 尾数不符合01XXXX的形式,因此不是规格化数,必须先进行规格化处理。
方法:若尾数小于1/2,把尾数左移一位(不包括符号位),观察结果是否满足规格化条件,满足则在把阶码减1即可,否则继续左移和调整阶码;若尾数大于1,则把尾数右移一位(不包括符号位),观察结果是否满足规格化条件,满足则在把阶码加1即可,否则继续右移和调整阶码。
上例中,00110左移一位为01100,符合规则化标准,此时阶码减1,为010即得到浮点表示形式。
这个数具体在计算机中如何表示要看计算机中规定的阶码和尾数的位数,若阶码和尾数均为16位,则上面的数X在计算机内部表示就是00000000000000100110000000000000 ,不足
均用零填充。
计算机组成原理浮点数表示及运算演示文稿

第1页,共53页。
(优选)计算机组成原理浮点 数表示及运算
第2页,共53页。
一、浮点数的表示
9×10-28 = 0.9 ×10-27 2×1033 = 0.2 ×1034
任意一个十进制数 N 可以写成
N=10E·×M (十进制表示)
计算机中一个任意进制数 N 可以写成
第7页,共53页。
例:对数据12310作规格化浮点数的编码,假定1位符号位,基 数为2,阶码5位,采用移码,尾数10位,采用补码。
解:12310=11110112= 0.11110110002×27
[7]移=10000+00111 = 10111
[0.1111011000]补=0.1111011000 [123]浮= 1011 1 0 11 1101 1000 = BBD8H
0.00001+0.11000=0.11001
第18页,共53页。
例: x=201×0.1101, y=211×(-0.1010), 求x+y=? 解:为便于直观了解,两数均以补码表示,阶码、尾数均采用
双符号位。 [x]补=00 01, 00.1101 [y]补=00 11, 11.0110 [△E]补= [ Ex]补-[Ey]补= 00 01+11 01 = 11 10 △E = -2, 表示Ex比Ey小2, 因此将x的尾数右移两位. 右移一位, 得 [x]补=00 10, 00.0110 再右移一位, 得 [x]补=00 11, 00.0011 至此, △E=0, 对阶完毕.
(3) 尾数进行加或减运算;
(4) 结果规格化。 (5) 舍入处理。 (6) 溢出处理。
第17页,共53页。
浮点数计算方式

浮点数计算方式浮点数是计算机中用来表示实数的一种数据类型。
它由一个小数部分和一个指数部分组成,可以表示非常大或非常小的数值范围。
浮点数的计算方式是基于浮点数的表示规范和运算规则进行的。
本文将介绍浮点数的计算方式,并探讨其中的一些注意事项。
一、浮点数的表示方式在计算机中,浮点数通常采用IEEE 754标准进行表示。
根据该标准,浮点数由三部分组成:符号位、指数位和尾数位。
其中,符号位用于表示浮点数的正负性,指数位用于表示浮点数的指数部分,尾数位用于表示浮点数的小数部分。
通过这种方式,计算机可以表示非常大或非常小的实数。
二、浮点数的四则运算浮点数的四则运算(加法、减法、乘法和除法)是基于IEEE 754标准进行的。
在进行浮点数的四则运算时,需要注意以下几点:1. 精度丢失:由于浮点数的表示方式是有限的,所以在进行浮点数的运算时,可能会出现精度丢失的情况。
这是因为某些实数无法准确表示为有限位数的浮点数。
因此,在进行浮点数计算时,应注意精度丢失可能会产生的误差。
2. 舍入误差:由于浮点数的表示方式是基于二进制的,而实数是十进制的,所以在进行浮点数计算时,可能会出现舍入误差。
这是因为某些十进制数无法准确表示为二进制数。
因此,在进行浮点数计算时,应注意舍入误差可能会对计算结果产生影响。
3. 无穷大和NaN:浮点数的运算结果可能会出现无穷大(Infinity)或不确定值(NaN)。
无穷大表示计算结果超出了浮点数的表示范围,而NaN表示计算结果无法确定。
在进行浮点数计算时,应注意处理这些特殊情况,以避免出现错误结果。
三、浮点数计算中的问题和解决方法在进行浮点数计算时,可能会遇到一些问题,如计算结果不准确、计算速度较慢等。
为了解决这些问题,可以采取以下方法:1. 增加计算精度:可以增加浮点数的位数,从而提高计算精度。
例如,可以使用双精度浮点数(64位)替代单精度浮点数(32位),以提高计算精度。
2. 使用精确计算:可以使用精确计算方法,如使用有理数进行计算,从而避免浮点数计算中的精度丢失和舍入误差。
浮点数的表示范围计算

浮点数的表⽰范围计算对于C语⾔来说,其浮点数类型是以下两种表⽰:类型占⽤存储空间表述范围float4字节-3.403E38~3.403E38double8字节-1.798E308~1.798E308其浮点数各⾃表述范围的计算,看⼀下各个位的定义就⾏。
32位的浮点数是1位符号位+8位指数位+23位底数位最⼤最⼩值的话对应都是绝对值最⼤的情况。
8位指数位⾥255被保留,最⼤只能取到254,移码的偏移量是+127,也就是说254表⽰的是2127。
23位底数位全是1的话,是⼆进制的1.111…111(⼩数点后23个1),也就是“1后⾯24个0”减去1再右移23位。
那么这个最⼤的绝对值对应的就是((((1 << 24) - 1) << 127) >> 23) = ((1 << 24) - 1) << 104In[1]:= (224 - 1) x 2104out[1]:= 3.40282 x 1038同理:64位的浮点数是1位符号位+11位指数位+52位底数位,11位指数位⾥2047被保留,最⼤只能取到2046,移码的偏移量是+1023,也就是说2046表⽰的是21023。
52位底数位全是1的话,是⼆进制的1.111…111(⼩数点后52个1),也就是“1后⾯53个0”减去1再右移52位。
那么这个最⼤的绝对值对应的就是((((1 << 53) -1) << 1023) >> 52) = ((1 << 53) - 1) << 971In[1]:= (253 - 1) x 2971out[1]:= 1.79769 x 10308。
浮点数的表示和运算(范围计算)

浮点数的表示和运算浮点数的表示和基本运算1 浮点数的表示通常,我们可以用下面的格式来表示浮点数其中S是符号位,P是阶码,M是尾数对于IBM-PC而言,单精度浮点数是32位(即4字节)的,双精度浮点数是64位(即8字节)的。
两者的S,P,M所占的位数以及表示方法由下表可知以单精度浮点数为例,可以得到其二进制的表示格式如下其中S是符号位,只有0和1,分别表示正负;P是阶码,通常使用移码表示(移码和补码只有符号位相反,其余都一样。
对于正数而言,原码,反码和补码都一样;对于负数而言,补码就是其绝对值的原码全部取反,然后加1.)为了简单起见,本文都只讨论单精度浮点数,双精度浮点数也是用一样的方式存储和表示的。
2 浮点数的表示约定单精度浮点数和双精度浮点数都是用IEEE754标准定义的,其中有一些特殊约定。
(1)当P = 0, M = 0时,表示0。
(2)当P = 255, M = 0时,表示无穷大,用符号位来确定是正无穷大还是负无穷大。
(3)当P = 255, M != 0时,表示NaN(Not a Number,不是一个数)。
当我们使用.Net Framework的时候,我们通常会用到下面三个常量Console.WriteLine(float.MaxValue); // 3.402823E+38Console.WriteLine(float.MinValue); //-3.402823E+38Console.WriteLine(float.Epsilon); // 1.401298E-45//如果我们把它们转换成双精度类型,它们的值如下Console.WriteLine(Convert.ToDouble(float.MaxValue)); // 3.40282346638529E+38Console.WriteLine(Convert.ToDouble(float.MinValue)); //-3.40282346638529E+38Console.WriteLine(Convert.ToDouble(float.Epsilon)); // 1.40129846432482E-45那么这些值是如何求出来的呢?根据上面的约定,我们可以知道阶码P的最大值是11111110(这个值是254,因为255用于特殊的约定,那么对于可以精确表示的数来说,254就是最大的阶码了)。
概述浮点数的表示形式、表示范围、规格化

概述浮点数的表示形式、表示范围、规格化1. 前言在计算机科学和数值计算中,浮点数是一种用于近似表示实数的数据类型。
浮点数的表示形式、表示范围和规格化是计算机科学中非常重要的概念和知识点。
本文将从简到繁,由浅入深地探讨浮点数的表示形式、表示范围和规格化。
2. 浮点数的表示形式浮点数通常以科学计数法的形式表示,包括两部分:尾数和指数。
以二进制表示的浮点数通常采用IEEE 754标准,其中规定了单精度浮点数和双精度浮点数的表示形式。
单精度浮点数占32位,双精度浮点数占64位。
在IEEE 754标准中,浮点数采用“符号位-指数位-尾数位”的形式表示,其中符号位表示正负,指数位表示指数部分,尾数位表示尾数部分。
3. 表示范围浮点数的表示范围取决于浮点数所占的位数。
单精度浮点数的表示范围约为1.4013e-45到3.4028e+38,双精度浮点数的表示范围约为4.9407e-324到1.7977e+308。
表示范围的大小直接影响了浮点数能够表示的最大值和最小值。
4. 规格化规格化是指将浮点数表示为规格化形式,即将尾数部分的最高位固定为1,并且将指数部分调整为合适的值。
规格化可以使浮点数的表示更加简洁、清晰,并且可以减少出现溢出和下溢的可能性。
5. 个人观点和理解浮点数的表示形式、表示范围和规格化是计算机科学中非常基础和重要的概念。
对于编程语言和数值计算的学习者来说,深入理解浮点数的表示形式和规格化,可以帮助他们更好地理解计算机中浮点数的存储和运算方式,从而编写更加高效和准确的程序。
6. 总结本文从简到繁,由浅入深地探讨了浮点数的表示形式、表示范围和规格化。
通过本文的阐述,读者可以更全面、深刻和灵活地理解浮点数相关的基础知识,以便在实际工作和学习中能够更好地应用和运用这些知识。
在文章中多次提及“浮点数”的关键词,以确保文章内容贯穿主题。
文章总字数大于3000字,并使用普通文本撰写,遵循知识文章格式。
7. 浮点数的精度除了表示范围和规格化外,浮点数的精度也是一个重要的方面。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《计算机组成原理》实验报告sw $aO, O($fp) #calculate the first nu mberandi $s2, $s0, 0x80000000 # s2 is the sig nsrl $s2, $s2, 31andi $s3, $s0, 0x7f800000 # s3 is the exp onentsrl $s3, $s3, 23andi $s4, $s0, 0x007fffff # s4 is the fractio naddi $s4, $s4, 0x00800000 #calculate the seco nd numberandi $s5, $s1, 0x80000000 # s5 is the sig nsrl $s5, $s5, 31andi $s6, $s1, 0x7f800000 # s6 is the exp onentsrl $s6, $s6, 23andi $s7, $s1, 0x007fffff # s7 is the fractio naddi $s7, $s7, 0x00800000sub $t0, $s3, $s6bit $t0, 0, sumL1 # add subbgt $t0, 0, sumL2 # sub addbeq $t0, 0, sumL32.减法指令如下:mysub: subu $sp, $sp, 32sw $ra, 20($sp)sw $fp, 16($sp)addiu $fp, $sp, 28sw $a0, 0($fp) #calculate the first nu mberandi $s2, $s0, 0x80000000 # s2 is the sig nsrl $s2, $s2, 31andi $s3, $s0, 0x7f800000 # s3 is the exp onentsrl $s3, $s3, 23andi $s4, $s0, 0x007fffff # s4 is the fractio naddi $s4, $s4, 0x00800000 #calculate the seco nd numberxori $s5, $s1, 0x80000000 # s5 is the sig nsrl $s5, $s5, 31andi $s6, $s1, 0x7f800000 # s6 is the exp onentsrl $s6, $s6, 23andi $s7, $s1, 0x007fffff # s7 is the fractio naddi $s7, $s7, 0x00800000sub $t0, $s3, $s6blt $t0, 0, subL1 # +,-bgt $t0, 0, subL2 # -,+beq $t0, 0, subL3 # +,+ or -,-3.乘法指令如下:mutilStart: srl $t2, $s0, 31srl $t3, $s1, 31sll $t4, $s0, 1srl $t4, $t4, 24 # expsll $t5, $s1, 1srl $t5, $t5, 24 # exp # 0...1fracsll $t6, $s0, 9srl $t6, $t6, 9ori $t6, $t6, 0x00800000sll $t6, $t6, 8addi $t4, $t4, 1 # 0...1fracsll $t7, $s1, 9srl $t7, $t7, 9ori $t7, $t7, 0x00800000sll $t7, $t7, 8addi $t5, $t5, 1sub $t4, $t4, 127add $t4, $t4, $t5 # final expsub $t5, $t5, $t5mutilCompareSig n:add $t2, $t2, $t3sll $t2, $t2, 31 # final sig nmultu $t6, $t7mfhi $t5#regularandi $t8, $t5,0x80000000beq$t8, 0x80000000, muti In extsll $t5, $t5, 1sub $t4, $t4, 1mutil next: sll $t5, $t5, 1 # IEEE754sub $t4, $t4, 1srl $t5, $t5, 9 # final fracti onmutilFi nal: sll $t4, $t4, 24srl $t4, $t4, 1addu $t2, $t2, $t4addu $t2, $t2, $t5 # resultadd $s2, $t2, $zero # save resultli $v0, 4la $a0, msg3syscallli $v0, 2mtc1 $t2, $f12syscallla $a0, nsg0 # new lineli $v0, 4syscallIw Iw $ ad dii jr $ra,fp, u$ra20($sp)16($sp)$sp, $sp, 324.除法指令如下:divideStart: srl $t2, $s0, 31srl $t3. $s1, 31sll $t4. $s0, 1srl $t4, $t4, 24 # expsll $t5, $s1, 1srl $t5, $t5, 24 # expsll $t6, $s0, 9srl $t6, $t6, 9ori $t6, $t6, 0x00800000sll $t7, $s1, 9srl $t7, $t7, 9ori $t7, $t7, 0x00800000sub $t4, $t4, $t5 # final expaddi $t4, $t4, 127sub $t5, $t5, $t5divideCompareSig n: add $t2, $t2, $t3sll $t2, $t2, 31 # final sig nsub $t8, $t8, $t8 # use to record dividsub $t3, $t3, $t3 # use to record rema in dersub $t5, $t5, $t5 # use as coun terdividecompare bge $t5, 24, dividebreakout #compare the two nu mber blt $t6, $t7, dividelowerdividegreater: sub $t6, $t6, $t7 #divide is lowersll $t6, $t6, 1sll $t8, $t8, 1addi $t8, $t8, 1addi $t5, $t5, 1j dividecomparedividelower: sll $t6, $t6, 1sll $t8, $t8, 1addi $t5, $t5, 1j dividecomparedividebreakout: blt $t8, 0x00800000, dividedoSllbge $t8, 0x01000000, dividedoSrlj divideresultdividedoSII: sll $t8, $t8, 1subi $t4, $t4, 1blt $t8, 0x00800000, dividedoSII j divideresult dividedoSrl: srl $t8, $t8, 1addi $t4, $t4, 1bge $t8, 0x01000000, dividedoSrl j divideresult divideresult:bgt $t4, 255 ,divideoverFlowsll $t8, $t8, 9 srl $t8, $t8, 9sll $t4, $t4, 24srl $t4, $t4, 1add $t2, $t2, $t4add $t2, $t2, $t8add $s2, $t2, $zero# save resultli $v O 4la $ a 0, msg3 #output messagesyscallli $v0,2mtc1$t2, $f12syscall j diviede ndsw $ra, 20($sp)sw $fp, 16($sp)addiu $fp, $sp, 28sw $a0, 0($fp)add $a0, $s2, $zeroadd $t9, $zero, $a0sub $t6, $t6, $t6 # set $t6=0sub $t7, $t7, $t7 # set $t7=0 addi $t5, $zero, 32 # set $t5=32 as a coun ter addi$t8, $zero,0x80000000 # set $t8=1000 00000000 0000 00005.十进制转换为二进制指令如下:dex2:subu $sp, $sp, 32 0000 0000 0000begi nLoop: addi $t5, $t5, -1and$t7, $t8, $t9srl $t8, $t8, 1# coun ter --srlv add$aO, li$v0, syscallbeq $t5, jbegi$t7, $t7, $t5$t7, $zero 1$t6, ExistnLoop#output one bit#if equals jump exist6.十进制转换为十八进制指令如下:dex16:subu $sp, $sp, 32sw $ra, 20($sp)sw $fp, 16($sp)addiu $fp, $sp, 28sw $a0, 0($fp)sub $tO, $t0, $t0# use as coun tersrloop: bge $t0, & dex16end#16addi $t0, $t0, 1 srl $t1, $s2, 28sll $s2, $s2, 4bgt $t1, 9, outcharli $v0, 1add $a0, $t1, $zerosyscallj srloopoutchar: addi $t1, $t1, 55 # cha nge to charli $v0,11add $a0, $t1, $zerosyscallj srloopdex16e nd:la $a0, msg0 # new lineli $v0, 4syscalllw $ra, 20($sp)lw $fp, 16($sp)addiu $sp, $sp, 32jr $ra四、实验结果及分析和(或)源程序调试过程1. 实验结果:本次实验我们以十进制实数形式的输入两个浮点数,在内存中以 IEEE 754单精度方式表示,执行运算操作后,以十进制形式把结果输出,并且可以以二进制和十六 进制的方式显示输出,下图是执行加法运算,并输出二进制形式:a QP : 1, add 2.3. miol4. Aiv Cl. qui t1I tie F Lirs t Float mg value i s ' 1.25Ihe Second floating value i s :1. 1 匮Ih«! rgASMit i s. 2.375Inp ut B. the Tarm at t o outjiut: 5_ biaary & Hex : 5Diooooaocooi woooooooooaocoooGooZnput a OP: 1. add 2. sul 3. miol 4. diw 0. quitF图是执行乘法操作,并输出十六进制形式:'Input a 心P: 1. add 2. snl 3. nnol 4. Aiw Cl. quitTTke TI JTS t Floating Valu.电JL s . 2. SThe Second Floating is:0. 5The re&sult i s. 1.25^tnput st the Form at to outjut:5. binary 6 Hex : 63F/UDOOOO'Input a CP_ L. add 2 gtfb 3. niul 4. div C. quit减法运算如下图:工itput a OP: 1 . ad丄 2. sub 3. rwul 4. div qui 12Ih_E First FJ.Da.txik百va_lue 1 stl&Iks Vtlut ii;20Tk.fi reasult GIitpui * tht Format tc output ;吕.binury B ;日C1200000Ikput t OP' 1. add 2. sub 3 mu! 4 div 0,礬it除法运算如下图:Iiupiit 旦OP :1. add 2. sub 3. mul 4- da v 0. qni tAIhke First Floating value 1 s 112. 24The Second floating value is2Th色reasult is! 6.12Inpiit B th.^ Ear mat t g* ^tput ;5> binary & Ilex ;日plOOOOOOl LOOOOl 111010111DOOO1010 Input & OP: 1. ^.dd 2. sub 3.. mul 4・div* ® q-uit当输入错误,如除数为0时,会显示错误信息并退出,如下图:Input a OP 1 t_ add 2. sub 3. mil 4. div 0. KJUI t4I he f urst FL D all ng val 口总is:1Iht Second FLoafinc valu# is;0Error-一prograim is finishe! running:一一2. 实验分析:本次实验我们使用MIPS汇编指令,利用整数运算指令来编写了一个浮点数运算程序,通过在MARS 4.4软件上进行调试运行,得到了正确结果,本次实验实现了以下功能:(1) 程序提供了人机交互方式(字符界面)供用户选择相应的功能;(2) 接受十进制实数形式的输入,在内存中以IEEE 754单精度方式表示,支持以二进制和十六进制的方式显示输出;(3) 实现了浮点数的加减乘除运算;(4) 没有使用浮点指令,只利用了整数运算指令来完成软件的编写。