CEVA DSP – QA אוטומציה

יש מעבד שאינו משתמש בfloat ועל מנת לייצג שברים, הוא משתמש בinteger long המיוצג עם שלמעשה מיוצג בעזרת 4B-32bit.

נגדיר את ביטי הlong באופן הבא:

הביט הMSB נסמנו S -signed 

ה8 ביטים הבאים נסמנם E – Exponentially

ו23 ביטים הנותרים נסמנם M -mantissa

הנוסחה הבאה מייצגת את השבר בעזרת ה long:

(1- בחזקת S)כפול( M )כפול(2 בחזקת E)

צריך לרשום את הפונקציה :

unsigned long add(unsigned long float1, unsigned long float2)

שמקבלת שני ערכי long (שהם למעשה שברים) , עושה חיבור שלהם ומחזירה את התוצאה בlong

אולי התכוון ל bit shifting:

2^E=.1 << E