Floating point 添加两个不带浮点变量的数字

Floating point 添加两个不带浮点变量的数字,floating-point,precision,long-integer,floating-accuracy,Floating Point,Precision,Long Integer,Floating Accuracy,我需要写两个数相加的函数,但我们有一个处理器不支持变量类型的浮点 所以为了表示分数,是用一个长整数来表示的,实际上是用4B-32位来表示的 我们对长位的定义如下: 标记为S的MSB已签名 后面的8位以指数形式标记为E 剩下的23位标记为M尾数 以下公式表示长距离内的分数: (E^2)(M)(S^-1) 我需要编写函数: 无符号长加法(无符号长浮点1,无符号长浮点2) 它接收两个长值(实际上是分数),将它们相加并返回长值的答案 我试图做这样的事,但我被卡住了 无符号长加法(无符号长浮点1,无符号长

我需要写两个数相加的函数,但我们有一个处理器不支持变量类型的浮点

所以为了表示分数,是用一个长整数来表示的,实际上是用4B-32位来表示的

我们对长位的定义如下:

标记为S的MSB已签名

后面的8位以指数形式标记为E

剩下的23位标记为M尾数

以下公式表示长距离内的分数:

(E^2)(M)(S^-1)

我需要编写函数:

无符号长加法(无符号长浮点1,无符号长浮点2)

它接收两个长值(实际上是分数),将它们相加并返回长值的答案

我试图做这样的事,但我被卡住了

无符号长加法(无符号长浮点1,无符号长浮点2){

。 . .

谢谢:)

这里是一些伪代码

while exponent(f1) > exponent(f2):
    increment exponent(f2)
    shiftleft mantissa(f2)

while exponent(f2) > exponent(f1):
    increment exponent(f1)
    shiftleft mantissa(f1)

add mantissa(f1) to mantissa(f2)
adjust exponent
calculate sign

什么语言/环境?
while exponent(f1) > exponent(f2):
    increment exponent(f2)
    shiftleft mantissa(f2)

while exponent(f2) > exponent(f1):
    increment exponent(f1)
    shiftleft mantissa(f1)

add mantissa(f1) to mantissa(f2)
adjust exponent
calculate sign