新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)求平方根的高效快速算法

單片機(jī)求平方根的高效快速算法

作者: 時(shí)間:2014-01-18 來源:網(wǎng)絡(luò) 收藏

當(dāng)我們使用8位MCU編程,用到算法時(shí),如果調(diào)用自帶的子程序,那么生產(chǎn)的代碼較多,效率低下。因?yàn)檐浖詭惴ㄊ怯酶↑c(diǎn)數(shù)類型來計(jì)算的,現(xiàn)實(shí)中我們往往只需要返回整型數(shù)據(jù),采用以下代碼將會(huì)大大提高計(jì)算效率。

static unsigned long sqrt(unsigned long x)
{
register unsigned long xr; // result register
register unsigned long q2; // scan-bit register
register unsigned char f; // flag (one bit)

xr = 0; // clear result
q2 = 0x40000000L; // higest possible result bit
do
{
if((xr + q2) = x)
{
x -= xr + q2;
f = 1; // set flag
}
else{
f = 0; // clear flag
}
xr >>= 1;
if(f){
xr += q2; // test flag
}
} while(q2 >>= 2); // shift twice
if(xr x){
return xr +1; // add for rounding
}
else{
return xr;
}
}

51單片機(jī)相關(guān)文章:51單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)教程


單片機(jī)相關(guān)文章:單片機(jī)視頻教程


單片機(jī)相關(guān)文章:單片機(jī)工作原理




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉