色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何在單片機(jī)上實(shí)現(xiàn)開(kāi)根號(hào)

Wildesbeast ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2020-01-19 11:02 ? 次閱讀

單片機(jī)開(kāi)平方的快速算法

因?yàn)楣ぷ鞯男枰趩纹瑱C(jī)上實(shí)現(xiàn)開(kāi)根號(hào)的操作。目前開(kāi)平方的方法大部分是用牛頓迭代法。我在查了一些資料以后找到了一個(gè)比牛頓迭代法更加快速的方法。不敢獨(dú)享,介紹給大家,希望會(huì)有些幫助。

1.原理

因?yàn)榕虐娴脑颍胮ow(X,Y)表示X的Y次冪,用B[0],B[1],。..,B[m-1]表示一個(gè)序列,

其中[x]為下標(biāo)。

假設(shè):

B[x],b[x]都是二進(jìn)制序列,取值0或1。

M = B[m-1]*pow(2,m-1) + B[m-2]*pow(2,m-2) + 。.. + B[1]*pow(2,1) + B[0]*pow

(2,0)

N = b[n-1]*pow(2,n-1) + b[n-2]*pow(2,n-2) + 。.. + b[1]*pow(2,1) + n[0]*pow

(2,0)

pow(N,2) = M

(1) N的最高位b[n-1]可以根據(jù)M的最高位B[m-1]直接求得。

設(shè) m 已知,因?yàn)?pow(2, m-1) 《= M 《= pow(2, m),所以 pow(2, (m-1)/2) 《= N 《=

pow(2, m/2)

如果 m 是奇數(shù),設(shè)m=2*k+1,

那么 pow(2,k) 《= N 《 pow(2, 1/2+k) 《 pow(2, k+1),

n-1=k, n=k+1=(m+1)/2

如果 m 是偶數(shù),設(shè)m=2k,

那么 pow(2,k) 》 N 》= pow(2, k-1/2) 》 pow(2, k-1),

n-1=k-1,n=k=m/2

所以b[n-1]完全由B[m-1]決定。

余數(shù) M[1] = M - b[n-1]*pow(2, 2*n-2)

(2) N的次高位b[n-2]可以采用試探法來(lái)確定。

因?yàn)閎[n-1]=1,假設(shè)b[n-2]=1,則 pow(b[n-1]*pow(2,n-1) + b[n-1]*pow(2,n-2),

2) = b[n-1]*pow(2,2*n-2) + (b[n-1]*pow(2,2*n-2) + b[n-2]*pow(2,2*n-4)),

然后比較余數(shù)M[1]是否大于等于 (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4)。這種

比較只須根據(jù)B[m-1]、B[m-2]、。..、B[2*n-4]便可做出判斷,其余低位不做比較。

若 M[1] 》= (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4), 則假設(shè)有效,b[n-2] =

1;

余數(shù) M[2] = M[1] - pow(pow(2,n-1)*b[n-1] + pow(2,n-2)*b[n-2], 2) = M[1] -

(pow(2,2)+1)*pow(2,2*n-4);

若 M[1] 《 (pow(2,2)*b[n-1] + b[n-2]) * pow(2,2*n-4), 則假設(shè)無(wú)效,b[n-2] =

0;余數(shù) M[2] = M[1]。

(3) 同理,可以從高位到低位逐位求出M的平方根N的各位。

使用這種算法計(jì)算32位數(shù)的平方根時(shí)最多只須比較16次,而且每次比較時(shí)不必把M的各位逐

一比較,尤其是開(kāi)始時(shí)比較的位數(shù)很少,所以消耗的時(shí)間遠(yuǎn)低于牛頓迭代法。

2. 流程圖

(制作中,稍候再上)

3. 實(shí)現(xiàn)代碼

這里給出實(shí)現(xiàn)32位無(wú)符號(hào)整數(shù)開(kāi)方得到16位無(wú)符號(hào)整數(shù)的C語(yǔ)言代碼。

-------------------------------------------------------------------------------

-

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

/*Function: 開(kāi)根號(hào)處理 */

/*入口參數(shù):被開(kāi)方數(shù),長(zhǎng)整型 */

/*出口參數(shù):開(kāi)方結(jié)果,整型 */

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

unsigned int sqrt_16(unsigned long M)

{

unsigned int N, i;

unsigned long tmp, ttp; // 結(jié)果、循環(huán)計(jì)數(shù)

if (M == 0) // 被開(kāi)方數(shù),開(kāi)方結(jié)果也為0

return 0;

N = 0;

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

M 《《= 2;

if (tmp 》 1) // 最高位為1

{

N ++; // 結(jié)果當(dāng)前位為1,否則為默認(rèn)的0

tmp -= N;

}

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

{

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

tmp 《《= 2;

tmp += (M 》》 30); // 假設(shè)

ttp = N;

ttp = (ttp《《1)+1;

M 《《= 2;

if (tmp 》= ttp) // 假設(shè)成立

{

tmp -= ttp;

N ++;

}

}

return N;

}
責(zé)任編輯 LK

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6049

    文章

    44685

    瀏覽量

    641141
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4646

    瀏覽量

    93712
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    單片機(jī)能處理帶根號(hào)的公式么?如何去除公式的根號(hào)

    單片機(jī)能處理帶根號(hào)的公式么?誤差是不是會(huì)比較大?有沒(méi)有什么辦法去除公式的根號(hào)?或者減少單片機(jī)計(jì)算的誤差
    發(fā)表于 07-08 17:12

    單片機(jī)如何做開(kāi)根號(hào)運(yùn)算?

    我要用單片機(jī)測(cè)交流有效值,需要開(kāi)根號(hào)單片機(jī)可以直接做開(kāi)根號(hào)運(yùn)算嗎?
    發(fā)表于 09-25 23:11

    【MCU每周論點(diǎn)】吳鑒鷹帶你開(kāi)根號(hào)單片機(jī)跑的更快

    一份。 大家知道因?yàn)楣ぷ鞯男枰?b class='flag-5'>單片機(jī)上實(shí)現(xiàn)開(kāi)根號(hào)的操作。目前工程師開(kāi)平方的方法大部分是用牛頓迭代法。吳鑒鷹在查了一些資料以后找到了一個(gè)比牛頓迭代法更加快速的方法。不敢獨(dú)享,介紹
    發(fā)表于 03-03 19:06

    單片機(jī)開(kāi)根號(hào)的快速算法

    因?yàn)楣ぷ鞯男枰?b class='flag-5'>單片機(jī)上實(shí)現(xiàn)開(kāi)根號(hào)的操作。目前開(kāi)平方的方法大部分是用牛頓迭代法。我在查了一些資料以后找到了一個(gè)比牛頓迭代法更加快速的方法。不敢獨(dú)享,介紹給大家,希望會(huì)有些幫助。1.
    發(fā)表于 04-10 07:00

    何在單片機(jī)上使用c++?

    何在單片機(jī)上使用c++?
    發(fā)表于 10-08 06:38

    代碼是如何在單片機(jī)上跑的呢

    淺談:對(duì)于任何電子產(chǎn)品,硬件是軟件運(yùn)行的基礎(chǔ),而軟件賦予了硬件靈魂,兩者有機(jī)結(jié)合成為一個(gè)功能豐富、強(qiáng)大的系統(tǒng)。我們寫(xiě)的代碼是如何在單片機(jī)上跑的呢?下面以比較簡(jiǎn)單的方式簡(jiǎn)述一下,如果還要研究很多細(xì)節(jié)
    發(fā)表于 11-17 07:47

    何在STM32單片機(jī)上實(shí)現(xiàn)Printf函數(shù)打印串口信息并進(jìn)行代碼調(diào)試?

    何在STM32單片機(jī)上實(shí)現(xiàn)Printf函數(shù)打印串口信息并進(jìn)行代碼調(diào)試?
    發(fā)表于 12-02 07:35

    單片機(jī)上實(shí)現(xiàn)FTP

    何在單片機(jī)上實(shí)現(xiàn)FTP文件上傳這篇文章是我本人編寫(xiě)的 在網(wǎng)上也是絕無(wú)僅有一開(kāi)始發(fā)表在我的網(wǎng)易博客上了 結(jié)果被轉(zhuǎn)移且被誤傷 有可能存在某些字符或文字出錯(cuò)的地方有時(shí)間我會(huì)重新編寫(xiě), 目前大家先看
    發(fā)表于 01-07 06:53

    何在單片機(jī)上使用TEA加密通信源代碼免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在單片機(jī)上使用TEA加密通信源代碼免費(fèi)下載。
    發(fā)表于 07-19 17:37 ?2次下載
    如<b class='flag-5'>何在</b><b class='flag-5'>單片機(jī)上</b>使用TEA加密通信源代碼免費(fèi)下載

    何在51單片機(jī)上使用DS1302

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在51單片機(jī)上使用DS1302。
    發(fā)表于 07-17 17:38 ?5次下載
    如<b class='flag-5'>何在</b>51<b class='flag-5'>單片機(jī)上</b>使用DS1302

    何在2KB內(nèi)存的單片機(jī)上實(shí)現(xiàn)俄羅斯方塊

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在2KB內(nèi)存的單片機(jī)上實(shí)現(xiàn)俄羅斯方塊。
    發(fā)表于 06-04 17:52 ?1次下載

    何在單片機(jī)上實(shí)現(xiàn)卡爾曼濾波詳細(xì)計(jì)算方法和程序概述

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在單片機(jī)上實(shí)現(xiàn)卡爾曼濾波詳細(xì)計(jì)算方法和程序概述。
    的頭像 發(fā)表于 08-11 11:23 ?1.3w次閱讀
    如<b class='flag-5'>何在</b><b class='flag-5'>單片機(jī)上</b><b class='flag-5'>實(shí)現(xiàn)</b>卡爾曼濾波詳細(xì)計(jì)算方法和程序概述

    何在51單片機(jī)上實(shí)現(xiàn)串口收發(fā)命令

    串口通信在電子行業(yè)中應(yīng)用較廣,通過(guò)上位機(jī)發(fā)送命令,實(shí)現(xiàn)各種功能的控制及數(shù)據(jù)的反饋。本文就是在51 單片機(jī)上實(shí)現(xiàn)串口收發(fā)命令,程序調(diào)試正常,可以運(yùn)用到控制系統(tǒng)中。
    發(fā)表于 11-26 17:02 ?12次下載

    單片機(jī)】代碼是如何在單片機(jī)上運(yùn)行起來(lái)的?

    淺談:對(duì)于任何電子產(chǎn)品,硬件是軟件運(yùn)行的基礎(chǔ),而軟件賦予了硬件靈魂,兩者有機(jī)結(jié)合成為一個(gè)功能豐富、強(qiáng)大的系統(tǒng)。我們寫(xiě)的代碼是如何在單片機(jī)上跑的呢?下面以比較簡(jiǎn)單的方式簡(jiǎn)述一下,如果還要研究很多細(xì)節(jié)
    發(fā)表于 11-10 19:20 ?3次下載
    【<b class='flag-5'>單片機(jī)</b>】代碼是如<b class='flag-5'>何在</b><b class='flag-5'>單片機(jī)上</b>運(yùn)行起來(lái)的?

    單片機(jī)上如何實(shí)現(xiàn)快速的開(kāi)方運(yùn)算

    最近,做項(xiàng)目時(shí),需要使用開(kāi)發(fā)運(yùn)算,但是調(diào)用標(biāo)準(zhǔn)c庫(kù)的sqrt函數(shù),發(fā)現(xiàn)該函數(shù)有2k多大小,當(dāng)然執(zhí)行時(shí)間也就很長(zhǎng)了,根本不適合單片機(jī)的運(yùn)算。故而,網(wǎng)上找了一個(gè)簡(jiǎn)化的算法,編譯出來(lái)后,只有不到100字節(jié)
    發(fā)表于 11-16 15:51 ?7次下載
    <b class='flag-5'>單片機(jī)上</b>如何<b class='flag-5'>實(shí)現(xiàn)</b>快速的開(kāi)方運(yùn)算
    主站蜘蛛池模板: 9988电影网 | 亚洲精品无码久久久久A片空 | 最近中文字幕免费高清MV视频 | 涩涩免费网站 | 涩涩999 | 国产99久久久国产精品成人 | 热巴两次用约老师屁股发底线球 | 亚洲精品一区二区在线看片 | 天堂精品国产自在自线 | 国产99小视频 | 果冻传媒2021一二三在线观看 | 黄色网址在线播放 | 日本亚洲电影 | 久久精品99国产精品日本 | 99久久久无码国产AAA精品 | 亚洲欧美无码2017在线 | 国产AV亚洲精品久久久久 | 久久亚洲高清观看 | 男女性杂交内射妇女BBWXZ | 亚州日韩精品AV片无码中文 | 息与子在线交尾中文字幕 | 芒果影院网站在线观看 | 小蝌蚪视频在线观看免费观看WWW | 一区二区三区毛AAAA片特级 | 国产日韩在线欧美视频 | 色偷偷亚洲男人天堂 | 99视频精品国产在线视频 | 韩国免费啪啪漫画无遮拦健身教练 | 亚洲国产欧美日本大妈 | 秋霞伦理手机在线看片 | 亚洲国产免费观看视频 | 亚洲综合日韩中文字幕v在线 | 荷兰少归BVBV | 饥渴难耐的浪荡艳妇在线观看 | 99久久久久精品国产免费麻豆 | 中文无码熟妇人妻AV在线 | 色欲AV久久综合人妻蜜桃 | 婷婷久久综合九色综合伊人色 | 亚洲AV久久无码精品国产网站 | 狠狠干2022 | 成人中文字幕在线 |