?? example 2-3.c
字號:
/* Example 2 - 3. Signed Fixed-Point Division C Subroutine for C6x */
/********************************************************************/
/* num --- numerator(被除數(shù)), den --- denominator(除數(shù)) */
/********************************************************************/
int sdiv(int num, int den)
{
int i, shift, sign;
sign = (num>>31) ^ (den>>31); /* 確定結(jié)果的符號 */
num = _abs(num);
den = _abs(den);
if (den > num) return (0);
if (num == 0) return (0);
if (den == 0) return (–1);
shift = _lmbd(1, den) – _lmbd(1, num);
den <<= shift; /* 對齊分母 */
for (i=0; i<=shift; i++)
num = _subc(num, den);
num = _extu(num, (32–(shift+1)), ((32–(shift+1)));
/* 無符號除法的結(jié)果 */
if (sign) return (–num); /* 修正商的符號 */
else return (num);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -