📄 fpi.h
字号:
typedef long Word;typedef unsigned long Single;typedef struct { unsigned long l; unsigned long h;} Double;enum { FractBits = 28, CarryBit = 0x10000000, HiddenBit = 0x08000000, MsBit = HiddenBit, NGuardBits = 3, GuardMask = 0x07, LsBit = (1<<NGuardBits), SingleExpBias = 127, SingleExpMax = 255, DoubleExpBias = 1023, DoubleExpMax = 2047, ExpBias = DoubleExpBias, ExpInfinity = DoubleExpMax,};typedef struct { unsigned char s; short e; long l; /* 0000FFFFFFFFFFFFFFFFFFFFFFFFFGGG */ long h; /* 0000HFFFFFFFFFFFFFFFFFFFFFFFFFFF */} Internal;#define IsWeird(n) ((n)->e >= ExpInfinity)#define IsInfinity(n) (IsWeird(n) && (n)->h == HiddenBit && (n)->l == 0)#define SetInfinity(n) ((n)->e = ExpInfinity, (n)->h = HiddenBit, (n)->l = 0)#define IsNaN(n) (IsWeird(n) && (((n)->h & ~HiddenBit) || (n)->l))#define SetQNaN(n) ((n)->s = 0, (n)->e = ExpInfinity, \ (n)->h = HiddenBit|(LsBit<<1), (n)->l = 0)#define IsZero(n) ((n)->e == 1 && (n)->h == 0 && (n)->l == 0)#define SetZero(n) ((n)->e = 1, (n)->h = 0, (n)->l = 0)/* * fpi.c */extern void fpiround(Internal *);extern void fpiadd(Internal *, Internal *, Internal *);extern void fpisub(Internal *, Internal *, Internal *);extern void fpimul(Internal *, Internal *, Internal *);extern void fpidiv(Internal *, Internal *, Internal *);extern int fpicmp(Internal *, Internal *);extern void fpinormalise(Internal*);/* * fpimem.c */extern void fpis2i(Internal *, void *);extern void fpid2i(Internal *, void *);extern void fpiw2i(Internal *, void *);extern void fpii2s(void *, Internal *);extern void fpii2d(void *, Internal *);extern void fpii2w(Word *, Internal *);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -