快速开根号计算

2022-08-02 02:23:11   文档大全网     [ 字体: ] [ 阅读: ]

#文档大全网# 导语】以下是®文档大全网的小编为您整理的《快速开根号计算》,欢迎阅读!
根号,快速,计算

/****************************************/

/*Function: 开根号处理 */

/*入口参数:被开方数,长整型 */

/*出口参数:开方结果,整型 */

/****************************************/

/*

UINT SqrtQuick(unsigned long M)

{

unsigned char i;

UINT N;

unsigned long tmp, ttp; // 结果、循环计数

if(M == 0) // 被开方数,开方结果也为0

return 0;

N = 0;

tmp = (M >> 30); // 获取最高位:B[m-1]

M <<= 2;

if(tmp) // 最高位为1

{

N = 1; // 结果当前位为1,否则为默认的0

tmp -= 1;// -= N;

}

for(i = 15; i > 0; i--) // 求剩余的15位

{

N <<= 1; // 左移一位

tmp <<= 2;

tmp += (M >> 30); // 假设

ttp = ((unsigned long)N << 1) + 1;

//ttp++;//对于长整数不可用自加或自减,而是用+1来取代

M <<= 2;

if (tmp >= ttp) // 假设成立

{

tmp -= ttp;

N += 1;

}

}

return N;

}

本文来源:https://www.wddqxz.cn/95948ad980eb6294dd886c94.html

相关推荐