0

2つの数値を加算する関数を書く必要がありますが、変数型Floatをサポートしていないプロセッサがあります。浮動小数点変数なしで2つの数値を加算する

分数を表すために、実際には4B-32ビットを使用して表現された長い整数を使用しています。

次のように私たちは長いビットを定義します。

MSBはSが-signedマーク。

E-指数関数でマークされた8ビット。

残りの23ビットはM仮数とマークされています。

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

次式が長いにおける割合を表します。

と私は関数を記述する必要があります(実際に分画されている)2つのlong値を受け取る

unsigned long型のアドオン(unsigned long型FLOAT1、符号なしlongするfloat2)

、それらを追加し、答えを返します長い間。

私はこのようなことを試みましたが、私は立ち往生しています。

unsigned long型アド(unsigned long型FLOAT1、符号なしのロングするfloat2){

char E1=float1>>23, E2=float2>>23, E3; 

。 。 。 。

感謝:)

+0

どのような言語ですか/ enviriorment? –

答えて

0

sui's answerを言い換えするために、ここにいくつかの擬似コードです。

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 
関連する問題