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