fixsqrt.c
来自「[Game.Programming].Academic - Graphics G」· C语言 代码 · 共 28 行
C
28 行
/* The definitions below yield 2 integer bits, 30 fractional bits */#define FRACBITS 30 /* Must be even! */#define ITERS (15 + (FRACBITS >> 1))typedef long TFract;TFractFFracSqrt(TFract x){ register unsigned long root, remHi, remLo, testDiv, count; root = 0; /* Clear root */ remHi = 0; /* Clear high part of partial remainder */ remLo = x; /* Get argument into low part of partial remainder */ count = ITERS; /* Load loop counter */ do { remHi = (remHi << 2) | (remLo >> 30); remLo <<= 2; /* get 2 bits of arg */ root <<= 1; /* Get ready for the next bit in the root */ testDiv = (root << 1) + 1; /* Test radical */ if (remHi >= testDiv) { remHi -= testDiv; root += 1; } } while (count-- != 0); return(root);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?