home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
MAGAZINE
/
DDJ9309.ZIP
/
NETSQL.ZIP
/
BS_DBLE.C
< prev
next >
Wrap
Text File
|
1988-06-21
|
658b
|
33 lines
#include "realcnvt.h"
/* converts QB 4-byte real to IEEE 8-byte real */
double bassngltodouble(bassngl OldNum) {
IEEEdouble NewNum;
char Sign;
int Exp;
int X;
for(X = 0; X < 4; X++)
NewNum.byte[X] = 0x00;
Sign = OldNum[2] & 0x80;
Exp = OldNum[3] - 0x81 + 0x3FF;
NewNum.byte[6] = (Exp << 4);
NewNum.byte[7] = (Exp >> 4) | Sign;
for(X = 2; X > 0; X--) {
OldNum[X] <<= 1;
OldNum[X] |= OldNum[X-1] >> 7;
}
OldNum[0] <<= 1;
for(X = 6; X >= 4; X--) {
NewNum.byte[X] |= OldNum[X-4] >> 4;
NewNum.byte[X-1] = OldNum[X-4] << 4;
}
return(NewNum.value);
}