正在加载图片...
250编的奥 Chinapub coM 下载 Two 52个0 当然,开发一种格式用来在存储器中存储浮点数只是在汇编语言程序中实际使用这些数 的工作中的一小部分。如果真的要研制与世隔绝的计算机,则你需要面对编写浮点数的加 减、乘、除的函数集的工作。幸运的是,这些工作可以被分解成许多小的只涉及到整数的加 减、乘、除的工作,而整数的四则运算我们已经知道如何实现了。 例如,浮点加法的关键是有效数相加,因而用的技巧是用两个数的指数部分确定有效数 如何移位。假设要做以下加法 (1.1101×25)+(1.0010×22) 需要把11101与10010相加,但不是就这样相加。指数部分的不同表明第二个数必须进行 移位。实际上,需要进行11101000和10010的整数加法。最后的和是 l111010×2 有时两个数的指数部分差距很大,其中一个数甚至对和没有影响。就像这种情况:把地 球到太阳的距离与氢原子的半径相加 两个浮点数的相乘是把有效数部分像整型数那样相乘并把两个整型指数相加。通常,规 格化有效数部分可能会引起对新的指数调整 浮点算术运算中另一个复杂问题牵涉到较麻烦的计算,如方根、幂、对数和三角函数 但是,所有这些工作都可以用四个基本的浮点操作:加、减、乘、除来完成。 例如,三角函数Sin可以通过下列展开式来计算,如下: 参数x必须是弧度,360度的弧度为2π。感叹号是阶乘符号,其含义是把1到该数之间的所 有整数相乘,如:5!=1×2×3×4×5。这只是进行乘法运算,其中每一项的指数部分也是乘 法。其余的是一些除法、加法和减法。唯一真正麻烦的部分是在最后的省略,它意味着要永 远地计算下去。然而,实际上,如果局限在0~π/2的范围(从这里可以推导出所有其他的正 弦函数值),并不需要进行多少展开运算。在展开大约12项以后,已经精确到了双精度数的53 位 当然,使用计算机是为了使人们更容易完成某些工作,所以,编写浮点运算程序这样的 工作似乎离使用计算机的目的相差甚远。然而,这正是软件的可爱之处:一旦某人为某台机 器编写了浮点运算程序,其他人都可以使用。对科学和工程应用程序来说,浮点运算非常重 要,所以通常有很高的优先权。在计算机出现的早期,一旦新的类型的计算机出来,编写浮 点运算程序通常是第1项软件工作 事实上,甚至可以设计计算机机器码指令直接进行浮点运算!显然,说起来容易做起来 难,但这也说明了浮点运算的重要性。如果可以用硬件来实现浮点运算一与16位微处理器 的乘法和除法指令一样——则计算机中所有浮点运算工作将会完成得更快 最早把浮点运算硬件作为选件的商用计算机是1954年的IBM704,704把所有的数按36位 来存储。对浮点数,分成27位的有效数、8位指数和1个符号位。浮点运算硬件可做加法、减 法、乘法和除法,其他浮点运算功能必须用软件来实现。250 编码的奥秘 下载 (1 . 0 . . . . . . 0)T W O×2 4 7 5 2个0 当然,开发一种格式用来在存储器中存储浮点数只是在汇编语言程序中实际使用这些数 的工作中的一小部分。如果真的要研制与世隔绝的计算机,则你需要面对编写浮点数的加、 减、乘、除的函数集的工作。幸运的是,这些工作可以被分解成许多小的只涉及到整数的加、 减、乘、除的工作,而整数的四则运算我们已经知道如何实现了。 例如,浮点加法的关键是有效数相加,因而用的技巧是用两个数的指数部分确定有效数 如何移位。假设要做以下加法: (1 . 11 0 1×2 5)+(1 . 0 0 1 0×2 2) 需要把111 0 1与1 0 0 1 0相加,但不是就这样相加。指数部分的不同表明第二个数必须进行 移位。实际上,需要进行111 0 1 0 0 0和1 0 0 1 0的整数加法。最后的和是: 1 . 1111 0 1 0×2 5 有时两个数的指数部分差距很大,其中一个数甚至对和没有影响。就像这种情况:把地 球到太阳的距离与氢原子的半径相加。 两个浮点数的相乘是把有效数部分像整型数那样相乘并把两个整型指数相加。通常,规 格化有效数部分可能会引起对新的指数调整一、二次。 浮点算术运算中另一个复杂问题牵涉到较麻烦的计算,如方根、幂、对数和三角函数。 但是,所有这些工作都可以用四个基本的浮点操作:加、减、乘、除来完成。 例如,三角函数S i n可以通过下列展开式来计算,如下: 参数x必须是弧度,3 6 0度的弧度为2 p。感叹号是阶乘符号,其含义是把 1到该数之间的所 有整数相乘,如:5 !=1×2×3×4×5。这只是进行乘法运算,其中每一项的指数部分也是乘 法。其余的是一些除法、加法和减法。唯一真正麻烦的部分是在最后的省略,它意味着要永 远地计算下去。然而,实际上,如果局限在 0~p / 2的范围(从这里可以推导出所有其他的正 弦函数值),并不需要进行多少展开运算。在展开大约 1 2项以后,已经精确到了双精度数的 5 3 位。 当然,使用计算机是为了使人们更容易完成某些工作,所以,编写浮点运算程序这样的 工作似乎离使用计算机的目的相差甚远。然而,这正是软件的可爱之处:一旦某人为某台机 器编写了浮点运算程序,其他人都可以使用。对科学和工程应用程序来说,浮点运算非常重 要,所以通常有很高的优先权。在计算机出现的早期,一旦新的类型的计算机出来,编写浮 点运算程序通常是第1项软件工作。 事实上,甚至可以设计计算机机器码指令直接进行浮点运算!显然,说起来容易做起来 难,但这也说明了浮点运算的重要性。如果可以用硬件来实现浮点运算—与1 6位微处理器 的乘法和除法指令一样—则计算机中所有浮点运算工作将会完成得更快。 最早把浮点运算硬件作为选件的商用计算机是 1 9 5 4年的IBM 704,7 0 4把所有的数按3 6位 来存储。对浮点数,分成 2 7位的有效数、8位指数和1个符号位。浮点运算硬件可做加法、减 法、乘法和除法,其他浮点运算功能必须用软件来实现
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有