home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #1
/
monster.zip
/
monster
/
MAGAZINE
/
DDJ9309.ZIP
/
NETSQL.ZIP
/
DBLE_BD.C
< prev
next >
Wrap
Text File
|
1988-06-21
|
665b
|
33 lines
#include "realcnvt.h"
/* converts IEEE 8-byte real to basic 8-byte real */
void doubletobasdble(basdble *New, double Old) {
char Sign;
int Exp;
int X;
unsigned char *NewNum, *OldNum;
NewNum = (char *) New;
OldNum = (char *) &Old;
Sign = OldNum[7] & 0x80;
Exp = ((OldNum[7] & 0x7F) << 4) + (OldNum[6] >> 4);
if (Exp)
Exp += 0x81 - 0x3FF;
for (X = 6; X >= 0; X--) {
NewNum[X] = OldNum[X] << 4;
NewNum[X] |= OldNum[X-1] >> 4;
}
for (X = 0; X < 6; X++) {
NewNum[X] >>= 1;
NewNum[X] |= NewNum[X+1] << 7;
}
NewNum[6] >>= 1;
NewNum[6] |= Sign;
NewNum[7] = Exp;
}