懒人做图网站,湖北省建设厅监督网站,网页视频下载器安卓破解,哪个网站用div做的好浮点数加减运算
之前我们提到过#xff0c;浮点数具有特定的表示形式。因此#xff0c;在进行浮点数的加减运算之前#xff0c;需要统一浮点数的表达方式。这里我们主要对浮点数表示中的尾数M进行处理#xff0c;要求0≤M1#xff0c;统一格式如下#xff1a;
正数…浮点数加减运算
之前我们提到过浮点数具有特定的表示形式。因此在进行浮点数的加减运算之前需要统一浮点数的表达方式。这里我们主要对浮点数表示中的尾数M进行处理要求0≤M1统一格式如下
正数表达为00.1...其中00表示双符号位为正数小数部分第一位必须为1.当小数部分第一位不为1的时候令EE-1并且将所有小数部分算数左移一位直到其为1。负数表达式11.0...其中11表述双符号位是负数小数部分第一位必须是0这是因为负数采用补码。当小数部分第一位不为0的时候说明原码这一位是0进行左移规格化。
浮点数加减运算的步骤主要分为五步对阶求阶差右移位阶小的尾数尾数加减运算溢出处理。
另外这里没有提到右移规格化方法令EE1同时算数右移一位。
对阶
将两个浮点数的阶数调整为相等的。一般统一到阶数大的那一个。同时统一后的阶数就是得数初始的阶数。
求阶差
求两个浮点数的阶数到底相差了多少。
右移位阶小的尾数
根据阶差对位阶小的浮点数的尾数进行算数右移操作。同时当右移的尾数超出了最大精度一般会进行舍入操作。常见的舍入操作有两种
假如被右移出的最低位是1那么令新的最低位1.假如被右移出的最低位是1那么令新的最低位为1.
尾数加减运算
根据定点数的运算规则对尾数进行加减运算。运算完之后一般对得数进行规格化如果两符号位不相同的情况下。
溢出处理
尾数根据定点数的运算规则进行运算之后可能会发生溢出。这一般是阶码的溢出因为尾数的溢出可以由得数的规格化纠正。一般在运算过后阶码全0时判断为发生了溢出。
实例
/*例:X 2^(010)*0.11011011, Y 2^(100)*(-0.10101100),求XY。[X]补 00 010 00.11011011
[Y]补 11 100 11.01010100对阶
Ex-Ey 2
右移
[Mx]补 00.00110111
求尾数00.001101101111.01010100
-----------------11.1000101011规格化11.000101011
舍入(进1法)11.00010110
因此XY 2^(011){注意右移规格化导致阶码-1}*(-0.11101010)
*/
浮点数乘除运算
浮点数乘除运算的步骤主要包括
阶码加减。乘为加除为减。尾数乘除。
由于涉及都是定点数运算这里不多讲述。和浮点数加减运算相同的是参加运算的浮点数都要先规格化得数也要进行规格化。